如果密钥未命名为 id_rsa,则它不起作用

Mat*_*ieu 14 server ssh 16.04

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

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

我发现如果密钥没有命名,id_rsa它就不起作用。

如何在 ssh 中连接?

~/.ssh/id_rsa_admin

ssh admin@vps718449.ovh.net -p 9215
Run Code Online (Sandbox Code Playgroud)

fkr*_*iem 39

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

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin
Run Code Online (Sandbox Code Playgroud)

然后你就可以连接了ssh admin@vps718449.ovh.net -p 9215。作为额外的奖励,您还可以配置端口:

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin
    Port 9215
Run Code Online (Sandbox Code Playgroud)

然后你就可以连接了ssh admin@vps718449.ovh.net。更深入:

Host vps718449.ovh.net vps
     Hostname vps718449.ovh.net
     User admin
     IdentityFile ~/.ssh/id_rsa_admin
     Port 9215
Run Code Online (Sandbox Code Playgroud)

然后就行了ssh vps!当然vps只是一个例子,您可以使用任何其他您想要的别名(例如,如果您有多个 VPS)。有关man ssh_config您可以在那里设置的选项列表,请参阅。


Arr*_*cal 16

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

ssh -i ~/.ssh/id_rsa_admin admin@vps718449.ovh.net -p 9215
Run Code Online (Sandbox Code Playgroud)

  • 将 `-i` 放在主机名之前也有效;我认为@Mathieu 只是忘记了连字符。:p (5认同)