“ssh user@ip”和“ssh ip user”有什么区别?

“ssh user@ip”和“ssh ip user”有什么区别?

我面临上述问题之一。

只能ssh user@ip起到作用,反之则不行。当我运行时出现以下错误ssh ip root

sh: root: not found

因此,我猜使用有问题语法的应用程序之一无法登录。

答案1

ssh user@ip是正确的语法。另一个以您的身份登录到主机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]

相关内容

答案3

ssh如果你查看by的手册页man ssh,你会发现相关的语法

ssh [...] [-l login_name] [...] [user@]hostname [command]

因此,当它解析您的命令时,它将把第一个不带标志的参数视为主机名,并将其后面的参数视为传递到远程执行的命令。

回到你的案例。如果您将您的名字放在主机名后面,那么它将被视为命令。这就是为什么它会提示您该错误消息。因为root在远程主机中找不到命令。

相关内容