我想自动从Git拉出来。由于某些原因,我无法在我正在使用的服务器中自动化密码。所以它需要由Bash文件完成。现在我的Bash编码不是那么好。然后可以输入SSH密钥的密码。但我真的不知道该怎么做......
#!/bin/bash
cd . public_html/auto_deploy/foldername && git fetch --all && git checkout --force "origin/master"
以上不起作用......然后它需要输入密码,我不知道该怎么做......我怎么能这样做?
答案 0 :(得分:4)
幸运的是,根据核心Git documentation,您可以使用以下命令保存凭据以供以后使用 - 而不是每次提示时都输入凭据。
git config credential.helper store
使用此帮助程序会将未加密的密码存储在磁盘上, 仅受文件系统权限的保护。此命令将无限期地将凭证存储在磁盘上以供将来的Git程序使用。
您可能不希望直接调用此命令;这意味着 被git的其他部分用作凭证助手
有趣的是检查:Git Credentials
答案 1 :(得分:1)
您还可以使用ssh-keygen
生成ssh密钥,并使用ssh://
方法来git pull
。
SSH密钥可让您建立安全连接。
在生成SSH密钥之前,请通过运行cat ~/.ssh/id_rsa.pub
检查系统是否已经有一个。如果您看到以ssh-rsa
或ssh-dsa
开头的长字符串,则可以跳过ssh-keygen
步骤。
要生成新的SSH密钥,只需打开您的终端并使用下面的代码。 ssh-keygen
命令提示您输入用于存储密钥对和密码的位置和文件名。当提示您输入位置和文件名时,您可以按Enter键使用默认值。最佳做法是将密码用于SSH密钥,但这不是必需的,您可以按Enter跳过创建密码。请注意,您在此处选择的密码无法更改或检索。
ssh-keygen -t rsa -C "$your_email"
使用下面的代码显示您的公钥。
cat ~/.ssh/id_rsa.pub
将密钥复制粘贴到您的用户个人资料。请复制完整的密钥,以ssh-
开头,并以您的用户名和主机结尾。
答案 2 :(得分:0)
如果你想从shell脚本中执行Git pull,你需要像这样使用它:
git pull https://username:password@git_hostname.com/my/repository