好的,我知道了如何设置无密码 ssh 的基本知识:使用 ssh-keygen 创建密钥对,然后将 id_dsa.pub 中的公钥添加到主机的 .ssh/authorized_keys 中。因此,对于两台不同的机器(客户端和主机),我可以从客户端 ssh 到主机而无需输入密码。到目前为止还不错。
但是我有一些软件需要客户端能够通过 ssh 进入本身无需密码。我天真地做了同样的事情:只需将 .ssh/id_dsa.pub 复制到 .ssh/authorized_keys 中,同一目录。但它不起作用。如果我输入
用户@客户端:~$ ssh 客户端
那么它仍然会要求我输入密码,即使客户端的公钥在其自己的authorized_keys文件中。
我是否遗漏了什么?
答案1
使用,它会将正确的数据复制到正确的位置。但是,如果是与您相同的用户,则可能会出现问题,因为它可能会覆盖一些重要内容。尝试之前,ssh-copy-id user@client
请先复制您的目录。.ssh
编辑:奇怪的是,我尝试将我的添加id_rsa.pub
到我的.ssh/authorized_keys
,并且成功了。您确定您的本地sshd
已配置为接受共享密钥身份验证吗?
答案2
如果我没记错的话,默认选项(以及私钥的默认位置)由 /etc/ssh/ssh_config 文件控制。
但是,ssh 命令选项允许您指定要使用的私钥的位置。
答案3
另一个具有类似症状的问题是无法将 localhost 添加到 TCP 包装器的控制文件 /etc/hosts.allow。您可以暂时重命名 /etc/hosts.deny 以确定这是否是问题的根源。