我正在尝试从我的本地机器(也在运行Ubuntu 12.04 LTS)连接到一个Linode(运行Ubuntu 12.04 LTS)。
在我的本地机器上创建了私钥和公钥,并将我的公钥复制到Linode的authorized_keys文件中。然而,每当我尝试通过ssh连接到我的Linode时,都会收到错误消息Permission denied (publickey)
。
这不是因为我的Linode上的ssh设置出了问题,因为我可以使用密钥认证从我的Windows机器ssh连接到它。
在我的本地Ubuntu机器的.ssh
目录中,我有id_rsa
和id_rsa.pub
文件。我需要在我的本地机器上创建一个authorized_keys文件吗?
编辑:当我运行ssh -vvv -i id_rsa [youruser]@[yourLinode]
时,我得到以下结果:
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
/var/log/auth.log
) 2)您是如何将公钥传输到服务器的?请始终使用ssh-copy-id
命令以确保权限正确。您的主目录、.ssh
目录和authorized_keys
文件都有严格的权限要求(详见sshd(8)
手册中关于~/.ssh/authorized_keys
的说明)。 3)您是否在Ubuntu上生成了新的密钥对?如果您重用了来自Windows的密钥,则需要先将其转换为OpenSSH格式。 - gertvdijkssh -vvv -i .ssh/id_rsa ....
(注意id_rsa的路径!)- 请替换 - 旧日志只显示“我们”没有可发送的公钥。 - guntbertssh -vvv
将报告“没有共同的签名算法”。要修复此问题,可以更新您的ssh服务器以支持rsa-sha2
,或者使用ssh-keygen -t ed25519
重新生成密钥,或者在ssh客户端中传递-o PubkeyAcceptedKeyTypes=+ssh-rsa
。 - Sir Athos