情况就是这样:我有一台住在我家的机器(我叫它叫house_machine),我办公室里有另一台机器(称之为office_machine)。我使用ssh与dsa密钥身份验证和没有密码身份验证从office_machine访问home_machine。我在home_machine上设置了一个ssh服务器,并将office_machine上生成的公钥添加到home_machine上的authorized_keys文件中。这很好 - 我可以使用密钥而不是密码从office_machine进入home_machine。
现在的问题是:我希望能够通过使用属于office_machine的公钥访问其他办公室时访问home_machine。即我想将公钥(id_dsa.pub)放在USB驱动器上,然后将其复制到另一个办公室的.ssh目录中。从我在这个网站上看到的,其他人似乎已经能够做这种事情,但它不起作用。当我尝试将id_dsa.pub放在新机器上并执行ssh -v user@home_machine
时,调试消息以:
debug1: Offering public key: .ssh/id_dsa debug1: Server accepts key: pkalg ssh-dss blen 433 debug1: read PEM private key done: type DSA debug1: Authentications that can continue: publickey debug1: No more authentication methods to try. Permission denied (publickey).
我的临时解决方案是在home_machine上的sshd_config中设置“PasswordAuthentication yes”,只需使用密码即可访问home_machine。但是这使得使用密钥授权无效。
提前感谢!
答案 0 :(得分:2)
您需要复制的不仅仅是公钥 - 您需要私钥。
在ssh中,您将公众放在服务器端,但客户端需要拥有私钥。
您希望将id_dsa文件(而不是id_dsa.pub)复制到您的USB密钥(确保它受密码保护,以防它丢失!)。
然后,您可以使用该密钥从任何有权访问该密钥的计算机登录home_machine:
ssh -i / path / to / id_dsa user @ home_machine
(看起来你可能已经在office_machine上有一个不同的私钥,根据你粘贴的内容来判断 - 你可能会考虑使用ssh-agent)
另外,检查/ var / log / secure以查看sshd可能拒绝密钥身份验证的原因(通常是.ssh目录及其祖先的权限问题)。