运行时出现此错误ssh myhost2
:
no such identity: /home/myusername/.ssh/myhost2_rsa: No such file or directory
细节
在 Ubuntu 16.04.4 LTS 上,我最近配置了我的 SSH 客户端以使用不同的私钥连接到多个服务器。
我的~/.ssh/config
文件有多个主机声明,每个声明都有一个不同的 IdentityFile,如下所示:
Host myhost1
HostName myhost1.com
user myhost1user
IdentityFile ~/.ssh/myhost1_rsa
Host myhost2
HostName myhost2.com
user myhost2user
IdentityFile ~/.ssh/myhost2_rsa
Host myhost3
HostName myhost3.com
Host myhost4
HostName xxx.xxx.xxx.xx
user myhost4user
IdentityFile ~/.ssh/myhost4_rsa
几天前我设置这些时,一切都运行正常。换句话说,我可以使用这样的命令:
ssh myhost2
...SSH 连接将按预期工作。
今天,使用相同的命令导致此错误:
no such identity: /home/myusername/.ssh/myhost2_rsa: No such file or directory
我确信这是一个文件权限问题,并反复检查我的主文件夹和 .ssh 文件夹上没有组权限。
- 我的 ~/.ssh 文件夹有 700 个权限
- 我的 /home/myusername 文件夹有 700 个权限
我已经检查并重新检查了私钥文件:
- 我的每个私钥文件(例如
myhost2_rsa
) 具有 600 个权限 - 我的每个私钥文件都归我的用户帐户所有(感谢@steeldriver 询问这个问题)。以下是输出
namei -l /home/myusername/.ssh/myhost2_rsa
:
f: /home/myusername/.ssh/myhost2_rsa drwxr-xr-x root root / drwxr-xr-x root root home drwx------ myusername myusername myusername drwx------ myusername myusername .ssh -rw------- myusername myusername myhost2_rsa
由于这些在几天前就正常工作,所以我很震惊。这对我来说仍然是一个最近的 Ubuntu 设置,因此我一直在添加软件并进行配置调整,但我想不出任何会影响 SSH 或我的主文件夹权限的东西。
此外,我仍然可以使用相同的私钥通过 Putty 从我的 Win7 机器通过 SSH 进入这些相同的主机。
关于我还应该检查什么还有什么想法吗?
答案1
~/.ssh/config 上的权限也必须设置为 600。
一旦我设置了这些权限chmod 600 ~/.ssh/config
,通常的行为就会再次起作用(例如运行命令ssh myhost4
导致与服务器的 SSH 连接成功且没有错误)。