`ssh-agent` 在添加后询问密码

Auz*_*ias 6 ssh-agent

我是新手ssh-agent,遇到了我认为是“错误”的东西。

情况

  • 我有一个受密码保护的私钥。
  • 我想使用,ssh-agent所以我每次都不会写密码ssh
  • ssh-agent添加私钥(根据ssh-agent -l显示私钥)。
  • 然而,当我尝试ssh使用私钥访问远程服务器时(感谢~/.ssh/config文件),它ssh-agent仍然要求我输入密码

环境

我在 FedoraLinux 4.5.7-202.fc23.x86_64 #1 SMP Tue Jun 28 18:22:51 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux上,ssh版本是OpenSSH_7.2p2, OpenSSL 1.0.2h-fips. 这里有两个序列在​​使用(我认为的)GNOME 3 密钥环代理和ssh-agent.

这是~/.ssh/config

 IdentitiesOnly yes
[..]
Host root.w.com
    HostName 92.1.2.3
    User user
    Port 22
    IdentityFile /home/user/.ssh/key-rsa.priv
Run Code Online (Sandbox Code Playgroud)

GNOME 3 密钥环代理

user@local:~$ ssh server-key
Enter passphrase for key '/home/user/.ssh/key-rsa.priv': 
You have new mail.
Last login: Sat Aug 13 10:41:46 2016 from some.ip.dot.org
user@remote:~$
Connection to <remote-ip> closed.
user@local:~$ echo $SSH_AUTH_SOCK
/run/user/1000/keyring/ssh
user@local:~$ echo $SSH_AGENT_PID

user@local:~$ ssh-add ~/.ssh/key-rsa.priv
Enter passphrase for /home/user/.ssh/key-rsa.priv: 
Identity added: /home/user/.ssh/key-rsa.priv (/home/user/.ssh/key-rsa.priv)
user@local:~$ ssh-add -l
4096 SHA256:aZl81hzUczH+sX+/5+tCJHln11xqta62RbtzLQt5LKE /home/user/.ssh/key-rsa.priv (RSA)
user@local:~$ ssh server-key 
Enter passphrase for key '/home/user/.ssh/key-rsa.priv': 
?  user@local:~$ 
Run Code Online (Sandbox Code Playgroud)

ssh-agent 代理人

user@local:~$ eval $(ssh-agent)  
Agent pid 3169
user@local:~$ echo $SSH_AGENT_PID
3169
user@local:~$ echo $SSH_AUTH_SOCK
/tmp/ssh-nqpXUUf2qNpT/agent.3168
user@local:~$ ssh-add -D
All identities removed.
user@local:~$ ssh-add ~/.ssh/key-rsa.priv
Enter passphrase for /home/user/.ssh/key-rsa.priv: 
Identity added: /home/user/.ssh/key-rsa.priv (/home/user/.ssh/key-rsa.priv)
user@local:~$ ssh server-key 
Enter passphrase for key '/home/user/.ssh/key-rsa.priv': 
?  user@local:~$ 
Run Code Online (Sandbox Code Playgroud)

  • 我该ssh-agent怎么做才能不询问密码?
  • 知道为什么这些不起作用吗?

尽管我阅读了答案并且该解决方案对我不起作用,但我的问题与此问题类似。

mpe*_*rin 6

我刚刚发现IdentitiesOnly似乎需要本地机器上的公钥才能正常工作。

如果没有本地机器上的公钥,即使私钥在代理中,当然还有远程机器上的公钥,我也总是被提示输入密码。

公钥路径与带有.pub追加的私钥路径相同。


小智 2

正如@ilkkachu 所说,问题是IdentitiesOnly

在您的Host部分中,只需添加

IdentitiesOnly no
Run Code Online (Sandbox Code Playgroud)