执行eval 'ssh-agent -s'后仍无法ssh-add公钥的问题求助
解决ssh-add提示"Could not open a connection to your authentication agent"的问题
我一眼就看出问题所在啦——你用单引号把ssh-agent -s包起来执行eval,这导致shell没有正确解析ssh-agent输出的环境变量命令,只是把它当成普通文本打印出来了,自然没法让后续的ssh-add连接到代理。
正确的操作步骤
直接去掉单引号,用命令替换的方式执行:
eval $(ssh-agent -s)
或者用传统的反引号写法也可以:
eval `ssh-agent -s`
执行完上面的命令后,再运行ssh-add ~/.ssh/id_rsa,就能正常把你的密钥添加到ssh代理里了。
额外的小建议
- 如果不想每次打开终端都手动启动代理,可以把
eval $(ssh-agent -s)这行命令添加到你的~/.bashrc(或者~/.zshrc,如果你用zsh的话)配置文件里,这样每次启动Cygwin终端都会自动启动ssh-agent。 - 别忘了检查你的密钥文件权限,
~/.ssh/id_rsa的权限最好设置为600(执行chmod 600 ~/.ssh/id_rsa),权限太宽松会被ssh拒绝使用哦。
你的操作及报错回顾
peter@peter-PC /cygdrive/e/Ti02 $ eval 'ssh-agent -s' SSH_AUTH_SOCK=/tmp/ssh-G6me31Q1Onsv/agent.2122; export SSH_AUTH_SOCK; SSH_AGENT_PID=2123; export SSH_AGENT_PID; echo Agent pid 2123; peter@peter-PC /cygdrive/e/Ti02 $ ssh-add ~/.ssh/id_rsa Could not open a connection to your authentication agent.
内容的提问来源于stack exchange,提问作者user7693832
相关产品推荐
相关产品推荐

