1

我正在使用 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工具解决这个问题。谢谢穆萨穆萨

4

4 回答 4

3

您必须使用 SSH 代理将解密的密钥存储在内存中。

这在 unix 下非常简单,只需启动eval $(ssh-agent),然后ssh-add它会询问您的密码,然后存储密钥。

对于 cron 问题,请尝试输入完整路径,您可以which git在任何 shell 上获取它。

于 2011-03-05T17:38:20.260 回答
1

您可以查看根据需要负责启动 ssh-agents 的钥匙串。从 rpm 包描述:

Keychain 是 OpenSSH、ssh.com、Sun SSH 和 GnuPG 代理的管理器。它充当代理的前端,使您可以轻松地为每个系统而不是每个登录会话拥有一个长时间运行的代理进程。这大大减少了您需要输入密码的次数,从每次新登录会话一次到每次重新启动本地计算机时一次。

于 2011-03-05T21:25:30.560 回答
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 时刚刚被剪切并粘贴了密码。

于 2011-03-06T02:03:55.793 回答
-1

这是一个链接,它确切地告诉您如何执行此操作:

http://linuxconfig.org/passwordless-ssh

注意第一条评论。正如评论者建议的那样,我需要替换 scp 命令。

于 2011-09-25T06:27:13.937 回答