如何向 SSH 添加私钥?

如何向 SSH 添加私钥?

我已生成一对私钥/公钥 RSA 密钥。公钥已添加到远程服务器,但是,当我通过 ssh 连接到远程服务器时,通过使用 -v,我可以看到我的本地客户端未使用 ~/.ssh 中的私钥。如何添加私钥以确保它用于身份验证?

这是 ssh auth 的详细输出:

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/nubela/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/nubela/.ssh/identity
debug1: Trying private key: /home/nubela/.ssh/id_dsa
debug1: No more authentication methods to try.

这是我的 ~/.ssh 的 ls -al

[nubela@localhost .ssh]$ pwd
/home/nubela/.ssh
[nubela@localhost .ssh]$ ls -al
total 36
drwx------  2 nubela guest 4096 2009-11-11 12:28 ./
drwx--x--x 70 nubela guest 4096 2009-11-11 00:53 ../
-rw-r--r--  1 nubela guest 1486 2009-11-11 12:25 2.ppk
-rw-------  1 nubela guest  604 2009-06-09 04:37 authorized_keys2
-rw-------  1 nubela guest 1743 2009-11-03 23:48 id_rsa
-rw-r--r--  1 nubela guest  398 2009-11-03 23:48 id_rsa.pub
-rw-r--r--  1 nubela guest 2803 2009-11-11 13:34 known_hosts
-rw-------  1 nubela guest 1743 2009-11-11 12:21 upperstorey
-rw-------  1 nubela guest  398 2009-11-11 12:21 upperstorey.pub

upperstorey 是我希望 ssh 客户端使用的私钥。我该如何添加它?

PS:使用 -i /path/to/privatekey 有效

谢谢!

答案1

那么,当连接到主​​机时remotehost,您想使用upperstorey中包含的密钥吗?

您需要明确告诉 ssh 使用它。最简单的方法是将以下块添加到您的 ~/.ssh/config:

Host remotehost
    IdentityFile ~/.ssh/upperstorey

这告诉ssh您在连接到该主机时使用该密钥。将任何别名添加到主机行(即 remotehost、remotehost.remotedomain.com 等)

相关内容