Ssh

ssh 忽略 ssh-agent

  • November 24, 2015

我正在使用一個新系統並且ssh忽略了我的ssh-agent. 請注意,我在其他地方已經這樣做了多年,這不是我感到困惑的新事物。與bash

> echo $SSH_AGENT_PID
1234
> echo $SSH_AUTH_SOCK
/tmp/ssh-foo/agent.1234
> ps -p 1234
 PID TTY          TIME CMD
1234 pts/12   00:00:01 ssh-agent

因此,ssh-agent 顯然正在執行,並且適當的環境變數已經到位。我還驗證了套接字實際上在那裡。

> ssh-add key
Enter passphrase for key: [done]
Identity successfully added.
> ssh-add -l
1024 SHA256:[blah] key

因此,密鑰已添加。但:

> ssh -i key me@there
Enter passphrase for key:

赦免?

/etc/ssh/ssh_config與我以前的系統中的一個(!#$% 升級…)有所不同,它們是相同的。根據發行版(fedora 23)包元資訊,這個是 openSSH 版本 7.1p1,我以前使用的安裝不超過 6.6。

並非所有使用者都存在這個問題,這讓我相信這可能是一些新的安全功能。有誰知道怎麼回事?

這是一個新特性,大概是 7.x 的。它需要添加密鑰類型才能/etc/ssh_config使用此選項:

PubkeyAcceptedKeyTypes +ssh-dss

預設情況下接受 RSA 密鑰(請參閱 參考資料man ssh_config),這就是為什麼它在一種情況下有效但在另一種情況下無效(作為 root 是一個紅鯡魚因素,我已經從問題中刪除了這個)。

再次注意,該選項不在我以前的內容ssh_config中,也不在相應的手冊頁中(openssh v. 6.6)。

引用自:https://unix.stackexchange.com/questions/245183