1

情况是这样的:我家有一台机器(我们称之为house_machine),我的办公室有另一台机器(称之为office_machine)。我使用 ssh 和 dsa 密钥身份验证并且没有密码身份验证从 office_machine 访问 home_machine。我已经在 home_machine 上设置了一个 ssh 服务器,并将在 office_machine 上生成的公钥添加到 home_machine 上的 authorized_keys 文件中。这很好用——我可以从office_machine ssh 到home_machine,只需使用密钥而无需密码。

现在的问题是:当我访问其他办公室时,我希望能够通过使用属于 office_machine 的公钥访问 home_machine。即,我想将公钥 (id_dsa.pub) 放在 USB 驱动器上,然后将其复制到另一个办公室的 .ssh 目录中。从我在这个网站上读到的内容来看,其他人似乎已经能够做这种事情,但是它不起作用。当我尝试简单地将 id_dsa.pub 放在新机器上并执行ssh -v user@home_machine调试消息时,以:

debug1:提供公钥:.ssh/id_dsa
debug1:服务器接受密钥:pkalg ssh-dss blen 433
debug1:读取 PEM 私钥完成:输入 DSA
debug1:可以继续的身份验证:publickey
debug1:没有更多的身份验证方法可以尝试。
权限被拒绝(公钥)。

我的临时解决方案是在 home_machine 上的 sshd_config 中设置“PasswordAuthentication yes”,然后使用密码进入 home_machine。但是,这使使用密钥授权的意义无效。

提前致谢!

4

1 回答 1

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 目录及其祖先的权限问题)。

于 2010-11-03T00:53:49.337 回答