细节

细节

运行时出现此错误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 连接成功且没有错误)。

相关内容