上記の問題の1つに直面しています。
それはssh user@ip
うまくいくかもしれませんが、その逆はできません。実行すると、次のエラーが発生します。ssh ip root
sh: root: not found
そのため、問題のある構文を使用するアプリの1つがログインできないようです。
答え1
これはssh user@ip
正しい構文です。もう1つはユーザーとしてホストにログインし、名前付きip
コマンドを実行しようとしますroot
。
質問を更新し、実際に達成したいことを説明してください。
答え2
他の人が言ったように、ssh user@ip
これは正しい構文です。使用される場合、ssh ip user
「ユーザー」部分は実際にリモートホストで実行されるコマンドです。
正しい構文でその部分を抑制すると、user@
実際にローカルユーザーがリモートホストに渡されます。同じ名前のユーザーがいない場合、またはリモートホストで無効になっているユーザーの場合は、エラーメッセージが表示されます。
このエラーメッセージ()が言うことは、sh: root: not found
リモートホストにrootコマンドがないことです。
SSHについて
ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile]
[-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-Q cipher | cipher-auth | mac | kex | key | protocol-version]
[-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]
関連情報
- SSH(1)マンページ
答え3
ssh
by マニュアルページを見ると、関連するman ssh
構文を見つけることができます。
ssh [...] [-l login_name] [...] [user@]hostname [command]
したがって、コマンドを解析するときに、フラグのない最初のパラメータをホスト名として処理し、その後のパラメータをリモート実行に渡されるコマンドとして処理します。
あなたの出来事に戻ります。ホスト名の後に名前を入れると、コマンドとして扱われます。これがこのエラーメッセージが表示される理由です。root
リモートホストでコマンドが見つからないためです。