我正在尝试从 LAN 上的 MacBook(客户端)连接到 iMac(服务器)。两者都有 Mac OS X 10.6.4。服务器运行的是全新安装的操作系统。激活后Remote Login
一切System Preferences
正常。但是,当将 ssh 设置为仅使用公钥/私钥时,我会从服务器日志中收到以下错误消息,具体取决于我是否使用 rsa 密码:
使用密码(情况 1):
PAM: user account has expired for <myServerUserName> from 192.168.X.X via 192.168.X.Y
没有密码(情况 2):
Failed publickey for <myServerUserName> from 192.168.X.X port AAAAA ssh2
这是我的设置算法:
- 使用命令在客户端上创建私钥和公钥
ssh-keygen -t rsa
。在案例 1 中,我还设置了密码。 - 移动
id_rsa.pub
到服务器路径/Users/<myServerUserName>/.ssh/
- 在此文件夹中我执行
cat id_rsa.pub > authorized_keys
- 确保
Remote Login
没有处于活动状态后,我现在sudo /usr/sbin/sshd -d
在服务器上执行。 - 回到客户端,我现在输入
ssh -v -v -v <myServerUserName>@192.168.X.Y
并提示接受 RSA 密钥指纹。这与我创建私钥/公钥时的指纹不同(应该是吗?)。我接受。 - 视具体情况而定:
- 案例 1:客户端因输入密码而暂停,即使输入了正确的密码,响应
permission denied
也是如此。回到服务器上,我可以看到上面针对案例 1 所述的错误消息:PAM: user account has expired...
- 案例 2:客户端收到消息
Connection closed by 192.168.X.Y
。回到服务器上,我可以看到上面针对案例 2 所述的错误消息:Failed publickey...
- 案例 1:客户端因输入密码而暂停,即使输入了正确的密码,响应
这可能是什么原因造成的?
答案1
仅提供一些提示,我必须在 MacOSX 上将身份文件 (rsa 私钥/公钥) 设置为文件名identity和identity.pub。我非常确定这是默认名称。
您可以在使用 ssh 命令时指定文件名,方法是使用“ssh -i /home/username/.ssh/id_rsa user@host”,这种方法应该总是有效的。这是确定默认文件名是否是问题的最佳方法。