Cygwin
cygwin下的ssh-add
我在 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':
我發現這個使用者和我有完全相同的問題
不幸的是,我沒有足夠的代表在那裡發表評論。我嘗試按照他的指示進行操作,但第一步對我不起作用:
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 一起工作。