Cygwin

cygwin下的ssh-add

  • May 2, 2016

我在 cygwin 下使用 ssh-agent 時遇到問題。瘋狂的部分是它正在工作,但在一天重新啟動後停止了。這是一個例子:

sthomas@sthomas-tcg ~
$ keychain ~/.ssh/id_rsa

KeyChain 2.6.8; http://www.gentoo.org/proj/en/keychain/
Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL

* Initializing /home/sthomas/.keychain/sthomas-tcg-sh file...
* Initializing /home/sthomas/.keychain/sthomas-tcg-csh file...
* Initializing /home/sthomas/.keychain/sthomas-tcg-fish file...
* Starting ssh-agent
* Adding 1 ssh key(s)...
Enter passphrase for /home/sthomas/.ssh/id_rsa:
Identity added: /home/sthomas/.ssh/id_rsa (/home/sthomas/.ssh/id_rsa)


sthomas@sthomas-tcg ~
$ ssh-add
Could not open a connection to your authentication agent.

sthomas@sthomas-tcg ~
$ ssh stage
Enter passphrase for key '/home/sthomas/.ssh/id_rsa':

我發現這個使用者和我有完全相同的問題

ssh-add 的問題

不幸的是,我沒有足夠的代表在那裡發表評論。我嘗試按照他的指示進行操作,但第一步對我不起作用:

sthomas@sthomas-tcg ~
$ `eval ssh-agent`
-bash: SSH_AUTH_SOCK=/tmp/ssh-ejseksys5348/agent.5348;: No such file or directory

有人知道這裡出了什麼問題嗎?該文件確實存在,但每次執行時失去的文件名都會更改。

sthomas@sthomas-tcg ~
$ ls /tmp/ssh-ejseksys5348/agent.5348
/tmp/ssh-ejseksys5348/agent.5348

好的,其他 Serverfault.com 的答案有錯字。

您要執行的正確方法是:

eval `ssh-agent`

ssh-agent吐出一堆shell語句來設置環境變數。在eval目前 shell 中執行它們。您可以以這種方式呼叫ssh-agent,或者執行ssh-agent然後將其輸出複制粘貼到您目前的 shell 中以獲得相同的效果。

修復了此消息的另一個方面:我將密鑰從 mint VM 導入到 cygwin。我使用沒有 nowrap 的 nano,並將我的公鑰複製到 3 行而不是 1 行。我必須輸入一個唯一的行,它最終與 eval 一起工作。

引用自:https://serverfault.com/questions/383059