2011-03-05 56 views
1

我使用的组合作为git存储库。我想保留一个本地版本到我的bluehost主机。每次我问来获取最新的副本,它让我把密码 -如何避免在蓝牙主机上使用git时使用ssh密码短语

Enter passphrase for key '/home/xxx/.ssh/id_dsa': 

我怎样才能避免这种情况?还有一两件事,如果我的混帐上的cron添加一个命令,如下

cd /path/to/project.git && git fetch -q 

它告诉

/bin/sh: git: command not found 

如何得解决这个问题?

顺便说一句,我试图找出我的redmine工具。 谢谢 Musa Musa

+1

如果您有两个问题,请发布两个问题,而不是将它们分组到一个问题。 – Jim 2011-03-05 17:31:13

回答

3

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

这在unix下很容易,只需启动eval $(ssh-agent)然后ssh-add这会询问你的密码,然后存储密钥。

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

+0

谢谢,我尝试了ssh-agent,然后将ssh-add命令添加到我的托管中,它说“无法打开与身份验证代理的连接”。什么是错的?另外我会在我的cron上添加git fetch命令以从远程主机获取,这是否与cron任务一起工作? – Musa 2011-03-05 18:17:31

+0

尝试启动“'eval $(ssh-agent)'”它应该工作,我会更新我的答案。cron任务中的'git fetch'应该可以工作,但我不知道如果发生合并冲突将会发生什么。 – krtek 2011-03-05 18:21:07

1

你可以看看keychain,它负责根据需要启动ssh-agents。从rpm包描述:

Keychain是OpenSSH的经理, ssh.com,Sun SSH和GnuPG代理。它 充当代理的前端, 允许您轻松地为每个系统提供一个 长时间运行的代理进程,而不是每个登录进程的 。这个 显着减少了您需要输入您的 密码的次数 ,从每次新登录 会话一次输入您的密码012次到每次当地 机器重​​新启动。

-1

这里有一个链接,告诉你究竟是如何做到这一点:

http://linuxconfig.org/passwordless-ssh

注意到第一评论。我需要像该评论者所建议的那样替换scp命令。

+0

我不知道hostingrails.com是否发生了变化。如果不是,这是一个可悲的clickbait,应该删除。 – Plummer 2015-06-30 06:11:14

+0

这只是一个旧的链接。我更新了它。 – emersonthis 2015-06-30 12:13:53