我使用装有 Ubuntu 12.10 的笔记本电脑,并尝试连接装有 Ubuntu 12.04 的服务器。该服务器已安装 openssh-server。并允许公钥和密码登录。但我有时可以顺利连接服务器,但几分钟后就会出错。首先,它会显示以下消息:
警告:远程主机标识已更改!
......
在 /home/myname/.ssh/known_hosts 中添加正确的主机密钥以摆脱此消息。
但我从未重新安装系统和 openssh 服务器。两者都从未改变!服务器从未关闭或重启。
其次,在我从我的known_hosts中删除相对密钥并使用ssh再次连接服务器后,它会让我输入密码。然后我的噩梦就来了......权限被拒绝(公钥,密码)
但我输入的密码是正确的!
PS:我用密码和公钥都成功了。但是我注销后再登录时问题又出现了。
答案1
您是否要允许密码验证?如果是,您可以编辑 /etc/ssh/sshd_config 以包含以下内容:
PasswordAuthentication yes
还要确保您的密钥认证设置正确:
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
您还可以让它忽略您的known_hosts文件...仅用于调试:)
IgnoreUserKnownHosts yes
还要确保您的密钥文件具有正确的权限。ssh 对此非常讲究:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
最后,如果一切都失败了,请使用“ssh -vvvv”向我们发送您的会话尝试的输出。