![如何连接到 SSH 而不每次都要求输入密码? - 已经按照这里的一些答案操作,但它不起作用](https://linux22.com/image/1309164/%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5%E5%88%B0%20SSH%20%E8%80%8C%E4%B8%8D%E6%AF%8F%E6%AC%A1%E9%83%BD%E8%A6%81%E6%B1%82%E8%BE%93%E5%85%A5%E5%AF%86%E7%A0%81%EF%BC%9F%20-%20%E5%B7%B2%E7%BB%8F%E6%8C%89%E7%85%A7%E8%BF%99%E9%87%8C%E7%9A%84%E4%B8%80%E4%BA%9B%E7%AD%94%E6%A1%88%E6%93%8D%E4%BD%9C%EF%BC%8C%E4%BD%86%E5%AE%83%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
MAC OS X Lion 10.7.3
1)在主机上,我在 .ssh 文件夹中创建了一个 authorized_keys 文件,方法如下:
touch authorized_keys
2)我已将我的公共 ssh 密钥复制到主机 .ssh 文件夹中,方法如下:
scp ~/.ssh/mykey.pub [email protected]:/home/userhost/.ssh/mykey.pub
3)我将其内容放入授权文件中,方法如下:
cat mykey.pub >> authorized_keys
4)然后我删除了mykey.pub文件:
rm mykey.pub
5)在我的终端上,本地,在我的~/.ssh 文件夹中,我创建了:
ssh-add mykey
(请注意,它没有 pub 扩展名);
6)我已关闭并再次打开终端。
当我第一次连接到该主机时,它已被添加到已知主机文件在 ~/.ssh 里面;我已经有了,pico known_hosts
并且哈希值就在那里。
尽管如此,每次我通过以下方式连接:ssh[电子邮件保护]它要求输入密码!
我在这里遗漏了什么?
更新:
我在这里甚至做了另外两件事:
7)将您的密钥设置为默认身份 - 如果不存在,则创建;
touch ~/.ssh/config
并将其放置在以下行内:
IdentityFile ~/.ssh/yourkeyname
id_rsa 通常是您的默认密钥。您应该切换到您的密钥。这表示传出的 ssh 连接应将其用作默认身份。
8)向您的 ssh-agent 添加一个 bash 进程:
ssh-agent bash
ssh-add ~/.ssh/yourkeyname
Lisinge 的回答很有帮助,但并不明确。如果我们重新启动机器,密码会再次提示!!!
我们如何调试它?我们能做什么?我们如何检查这个过程在哪里失败?
更新2:
如果我使用:
ssh -v -i <keyfile> [email protected]
我得到了以下东西:
OpenSSH_5.6p1,OpenSSL 0.9.8r 2011 年 2 月 8 日警告:无法访问身份文件 yourkeyname:没有此文件或目录。
此消息指的是什么?标识文件在本地主机上无法访问,还是在远程主机上无法访问?
请指教
答案1
您确定创建密钥时没有使用密码吗?
因为如果密钥是使用密码创建的,那么每次访问密钥时都必须输入密码。
尝试创建一个新密钥并按下enter
(将密码留空)并将其添加到主机并再次连接。