我正在使用assembla作为git存储库。我想保留本地版本到我的bluehost托管。每次我要求获取最新的副本时,它都会要求我输入密码 -
Enter passphrase for key '/home/xxx/.ssh/id_dsa':
我该如何避免这种情况?还有一件事,如果我在cron上为git添加一个命令,如下所示
cd /path/to/project.git && git fetch -q
告诉
/bin/sh: git: command not found
如何解决这个问题?
顺便说一句,我正在尝试用我的redmine工具来解决这个问题。 谢谢 穆萨 芭蕉
答案 0 :(得分:3)
您必须使用SSH代理将破解密钥存储在内存中。
这在unix下非常简单,只需启动eval $(ssh-agent)
然后ssh-add
这会询问您的密码,然后存储密钥。
对于cron问题,请尝试输入完整路径,您可以在任何shell上使用which git
获取它。
答案 1 :(得分:1)
您可以查看keychain,根据需要负责启动ssh-agents。从rpm包描述:
Keychain是OpenSSH的经理, ssh.com,Sun SSH和GnuPG代理商。它 作为代理人的前端, 让你轻松拥有一个 每个系统长期运行的代理进程, 而不是每个登录会话。这个 大大减少了数量 你需要输入你的时间 密码从每次新登录一次 每当你的本地会议一次 机器重新启动。
答案 2 :(得分:0)
您需要将公钥添加到BlueHost上的〜/ .ssh / authorized_keys。 有关详细信息,请参阅http://ionrails.com/2009/08/29/bluehost-login-to-your-ssh-account-without-typing-in-a-password/。我还记得在BlueHost的用户论坛中找到这个
我无法直接验证这一点,因为当我做git pull时,我刚刚被剪切并粘贴了密码。
答案 3 :(得分:-1)