使用ssh手动加载私钥

时间:2012-12-08 15:12:56

标签: bash ssh private-key

是否可以在忽略默认ssh目录的情况下运行.ssh并指定其他一个或更好指定的私钥?

例如:

ssh --private-key other_id_rsa login@host

3 个答案:

答案 0 :(得分:12)

您可以使用-i选项。

资料来源:man ssh

-i identity_file
    Selects a file from which the identity (private key) for public key authentication is read.  The default is ~/.ssh/identity for protocol
    version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2.  Identity files may also be specified on a per-
    host basis in the configuration file.  It is possible to have multiple -i options (and multiple identities specified in configuration
    files).  ssh will also try to load certificate information from the filename obtained by appending -cert.pub to identity filenames.

答案 1 :(得分:4)

您还可以为您访问的每个主机添加特定配置,这与持续使用ssh中可用的标志几乎相同。

有一整套可用的标志,并且每种不同的服务专业化都有一些映射。在您的情况下,使用特定的id_rsa文件,您可以写下~/.ssh/config文件:

...

Host host_alias
    HostName host_name
    IdentityFile ~/.ssh/id_rsa_you_want

...

然后,你可以简单地使用:

ssh host_alias

将使用id_rsa_you_want - 以及您可以应用于连接的任何进一步配置。有关可用指令的完整列表,请参阅man ssh_config

答案 2 :(得分:0)

另一种方法是在使用ssh之前手动使用ssh-agent和ssh-add命令。

<div>
    <table>
    </table>
</div>