[英]SSH key passphrase with git pull using Fabric
我正在尝试使用fabric自动部署应用程序。
应用程序代码托管在GitHub上,推出一个新版本非常简单 - 只需要'git pull'就可以了。 该应用程序托管在100台服务器上,因此我希望自动部署。 Fabfile.py:
def deploy():
code_path = '/home/myuser/myapp'
with cd(code_path):
run('git pull')
run('git submodule update --init --recursive')
问题是,在每个git命令上我得到一个promt: Enter passphrase for key '/home/myuser/.ssh/id_rsa
:
有没有办法自动输入密码? 它在每台服务器上都是一样的,与sudo密码相同
我曾尝试过访问库 ,但我想知道是否有更好的(即标准的)方法。
您还可以使用ssh密钥代理并使用代理转发。 始终在密钥上输入密码。 Github在这里有如何利用它的好文档。
Fabric现在也应该具有代理转发能力。 我在一些极端情况下遇到了麻烦,但是在问题解决之前,用一个明确的本地('ssh -A ...)作为解决方法绕过它们。
虽然我认为在接受的答案中描述的ssh-aget转发是一个更好的解决方案(如果你使它工作),但有替代它,由Fabric本身提供:
Fabric有自己的“密码”设置选项(即env.password
条目)。 如果设置env.password
可以使fabric自动输入密码(和sudo passwod)( 参见文档 ):
密码
默认值:
None
连接到远程主机时和/或回答sudo提示时SSH层使用的默认密码。
您可以使用以下任一选项设置密码 :
制作钥匙时不要使用密码短语。 只需按Enter键再按确认即可。 您还可以拥有多个密钥。 有些用密码,有些没用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.