在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': 

我发现这个用户和我有完全相同的问题

与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语句来设置环境variables。 eval在当前shell中运行它们。 您可以这样调用ssh-agent ,或者运行ssh-agent ,然后将其输出复制粘贴到当前的shell中,以获得相同的效果。

修复了这个消息的另一个方面:我从一个mint虚拟机导入了一个密钥到cygwin。 我用纳米没有nowrap和复制我的公共密钥3行而不是1.我不得不放在一个独特的行,它最终与eval工作。