终于 ssh localhost在我的 Ubuntu 机器上成功运行了,我现在无法从 Mac 远程进入 Ubuntu。
准备:
ubuntu:~/.ssh/authorized_keysusing 中cat。ubuntu:~/etc/ssh/sshd_config上AllowUsers线。来自 Mac 的 SSH 命令: ssh -p 22 [ubuntu ip address]
Ubuntu 上的诊断: tail /var/log/auth.log
ubuntu sshd[18320]: Set /proc/self/oom_score_adj to 0
ubuntu sshd[18320]: Connection from ip.ip.ip.ip port 1024
ubuntu sshd[18320]: Invalid user MyMacUserID from ip.ip.ip.ip
ubuntu sshd[18320]: input_userauth_request: invalid user MyMacUserID [preauth]
ubuntu sshd[18320]: Connection closed by ip.ip.ip.ip [preauth]
Run Code Online (Sandbox Code Playgroud)
为什么调用 MyMacUserID 无效?同样奇怪的是:为什么它指的是端口 1024 而不是 22?有任何想法吗?
您正在连接到 Ubuntu 机器,而不是您的 mac,因此您需要改用 Ubuntu 的用户名。该消息意味着您正在尝试以macuser(或任何您的用户名)身份登录,并且macuser在 Ubuntu 机器上没有。因此,假设您以 身份登录 Ubuntu ubuntuuser,请尝试:
ssh ubuntuuser@1.2.3.4
Run Code Online (Sandbox Code Playgroud)
此外,无需指定端口 22,这是默认设置。您也不需要将端口 22 转发到 Ubuntu 机器,除非您想从本地网络外部进行连接。至于1024端口,忽略它,是连接客户端(你的mac)的源端口,而不是你的Ubuntu机器的目标端口。
您需要指定远程用户(来自上一个问题):
ssh -p 22 -l me [ubuntu ip address]
Run Code Online (Sandbox Code Playgroud)
SSH 默认使用当前登录的用户,在另一台机器上显然不同。您也可以跳过端口,因为它是默认的并像这样使用它:
ssh me@[ubuntu ip address]
Run Code Online (Sandbox Code Playgroud)
同样奇怪的是:为什么它指的是端口 1024 而不是 22?有任何想法吗?
这描述了远程端口而不是本地端口。ssh 客户端使用的端口可能会有所不同,因为它是动态分配的。