如何使用 ssh -i 选项指定用于 ssh 连接的 ssh 密钥对?

Pau*_*son 6 ssh ssh-tunneling

我需要使用我专门为其创建的 ssh 密钥对(不是我的默认id_rsa密钥对)连接到 SSH 代理服务器。我从ssh手册中看到有一个-i选项可以用来指定我想要使用的新 SSH 密钥对。

我不确定如何实际调用该-i选项(我似乎找不到正在使用的选项的示例)。如果这是标准ssh命令,我将如何添加该选项?出于此问题的目的,假设我的新密钥对名为id_custom

ssh -N -D 8080 username@proxy.server.com
Run Code Online (Sandbox Code Playgroud)

我尝试添加identityfile=/Users/username/.ssh/id_custom到最后,但没有成功。(我在ssh - 如何在 SSHFS 中指定密钥? 中看到了这个选项)。

And*_*rds 5

这是基本命令,

ssh -i keyfile target_machine
Run Code Online (Sandbox Code Playgroud)

更具体地说,用您在那里提供的选项和密钥文件回答您的问题,

ssh -i /Users/username/.ssh/id_custom -N -D 8080 username@proxy.server.com
Run Code Online (Sandbox Code Playgroud)

有很多需要记住的事情。我建议使用一个config文件来帮助您(特定于用户的文件是.ssh/config,系统范围的文件是/etc/ssh/ssh_config) -man ssh_config了解更多信息。由于您正在使用代理,正如您在问题中提到的那样,-D您也可以使用该config文件来处理这些详细信息。config您可以在文件中使用以下一些选项.ssh/config,以便获得更简单的ssh命令,

Host proxy.server.com
    User username
    IdentityFile ~/.ssh/id_custom
    DynamicForward 8080
Run Code Online (Sandbox Code Playgroud)

然后 ssh 命令变得更容易(我不知道如何设置选项,-N所以.ssh/config将其留在这里),

ssh -N proxy.server.com
Run Code Online (Sandbox Code Playgroud)


小智 1

对于AWS EC2 ssh,我这样使用:

ssh -i mykeypair.pem *user_name*@ec2-*publicDNS.zone*.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)