如果密钥未命名为id_rsa,它将无法正常工作


14

我创建了一个密钥以使用密码在SSH中进行连接。我已经给钥匙命名了id_rsa_admin。当我登录时,显示以下消息Permission denied (publickey).

在日志中,我发现ssh查找文件id_rsa,因此找不到正确的文件。

我发现,如果未命名该密钥,id_rsa它将无法正常工作。

如何在ssh中连接?

~/.ssh/id_rsa_admin

ssh admin@vps718449.ovh.net -p 9215

Answers:


39

Arronical的答案对于一次性连接是好的,但从长期来看会很痛苦。为了使ssh在连接到该服务器时始终使用此密钥,可以将其添加到您的服务器~/.ssh/config(如果不存在,则创建它):

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin

然后,您可以与just连接ssh admin@vps718449.ovh.net -p 9215。另外,您还可以配置端口:

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin
    Port 9215

然后,您可以与just连接ssh admin@vps718449.ovh.net。更深入:

Host vps718449.ovh.net vps
     Hostname vps718449.ovh.net
     User admin
     IdentityFile ~/.ssh/id_rsa_admin
     Port 9215

然后就ssh vps可以了!当然,vps这只是一个示例,您可以使用所需的任何其他别名(例如,如果您有多个VPS)。请参阅man ssh_config以获取可在此处设置的选项的列表。


@fkraiem谢谢。三把钥匙怎么办?
Mathieu

1
@Mathieu为什么要三个键?如果是针对三台不同的主机,则只需为每台主机添加一个条目,每个条目都带有适当的密钥。
fkraiem '16

@fkraiem我在同一台服务器上有3个不同的密钥,但有3个用户
Mathieu

@Mathieu我现在无法确认这一点,但是我认为仅IdentityFile在本Host节中添加三行即可。另外,如果您放置User一行,则该用户将成为连接该主机的默认用户,但是您仍然可以使用来覆盖它@
fkraiem '16

@fkraiem非常感谢。它可以工作,但是显示以下错误“代理允许使用键签名失败”。我使用“ SSH_AUTH_SOCK = 0”进行连接,但必须在每次重新启动时完成。还有其他问候吗?
Mathieu

16

您需要使用-i密钥路径在ssh命令中使用该选项。修改后的命令将是:

ssh -i ~/.ssh/id_rsa_admin admin@vps718449.ovh.net -p 9215

谢谢。收到您的答复后,显示以下错误“ ssh:无法解析主机名i:名称或服务未知”
Mathieu

5
放在-i主机名之前也可以;我认为@Mathieu只是忘记了连字符。:p
fkraiem '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.