我有一个站点作为远程Git repo从Bitbucket.com使用SSH别名拉.我可以在我的服务器上手动启动ssh-agent,但每次通过SSH登录时都必须这样做.
我手动启动ssh-agent:
eval ssh-agent $SHELL
Run Code Online (Sandbox Code Playgroud)
然后我添加代理:
ssh-add ~/.ssh/bitbucket_id
Run Code Online (Sandbox Code Playgroud)
然后它出现在我做的时候:
ssh-add -l
Run Code Online (Sandbox Code Playgroud)
我很高兴去.有没有办法自动化这个过程,所以我不必每次登录都这样做?服务器正在运行RedHat 6.2(Santiago).
我正在尝试从脚本执行ssh-add(此时不关心安全性).
现在ssh提示密码短语,需要自动化,所以我读了几个像这样的东西,发现期望.
现在我做以下事情:
eval `ssh-agent -s`
Run Code Online (Sandbox Code Playgroud)
脚本tmp.sh定义为:
#!/usr/bin/expect
spawn ssh-add /root/.ssh/id_rsa
expect "Enter passphrase for /root/.ssh/id_rsa:"
send "my_pass"
interact
Run Code Online (Sandbox Code Playgroud)
./tmp.sh
ssh-add -l
如果ssh-add可行,它会显示类似的内容
4096 SHA256:wlfP/nhVSWXLcljBOen5GSYZXJGgfi/XJWfZeBwqRsM id_rsa (RSA)
但相反,我得到The agent has no identities.像ssh-agent似乎失去了它的上下文.
我愿意接受其他解决方案来做到这一点.