cygwin 下的 ssh-add

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

答案1

好的,Serverfault.com 上的另一个答案有错别字。

您要运行的正确操作是:

eval `ssh-agent`

ssh-agent输出一堆 shell 语句来设置环境变量。eval在当前 shell 中运行它们。您可以ssh-agent这样调用,或者运行ssh-agent然后将其输出复制粘贴到当前 shell 中以获得相同的效果。

答案2

修复了此消息的另一个方面:我将密钥从 mint VM 导入到 cygwin。我使用了不带 nowrap 的 nano,并将我的公钥复制到 3 行而不是 1 行。我必须将其放在一行中,最后它才能与 eval 配合使用。

相关内容