【问题标题】:How to avoid ssh passphrase while using git on bluehost如何在 bluehost 上使用 git 时避免 ssh 密码
【发布时间】:2011-03-05 17:29:01
【问题描述】:

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

【问题讨论】:

  • 如果您有两个问题,请发布两个问题,而不是将它们归为一个。

标签: git redmine bluehost


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,我尝试了 ssh-agent 然后 ssh-add 命令到我的主机,它说“无法打开与您的身份验证代理的连接。”怎么了?我还将在我的 cron 上添加 git fetch 命令以从远程主机获取,这适用于 cron 任务吗?
  • 尝试启动“eval $(ssh-agent)”它应该可以工作,我会更新我的答案。 git fetch 在 cron 任务中应该可以工作,但我不知道如果有合并冲突会发生什么
【解决方案2】:

您可以查看keychain,它负责根据需要启动 ssh-agents。来自rpm包说明:

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

【讨论】:

    【解决方案3】:

    您需要将您的公钥添加到 BlueHost 上的 ~/.ssh/authorized_keys。 请参阅http://ionrails.com/2009/08/29/bluehost-login-to-your-ssh-account-without-typing-in-a-password/ 了解更多信息。我还记得在 BlueHost 的用户论坛中找到了这个

    我无法直接验证这一点,因为我在执行 git pull 时刚刚被剪切并粘贴了密码。

    【讨论】:

      【解决方案4】:

      这里有一个链接,它会告诉您具体的操作方法:

      http://linuxconfig.org/passwordless-ssh

      记下第一条评论。我需要按照评论者的建议替换 scp 命令。

      【讨论】:

      • 我不知道hostingrails.com 是否改变了。如果不是,这是一个可悲的点击诱饵,应该删除。
      猜你喜欢
      • 2011-09-15
      • 1970-01-01
      • 2019-02-14
      • 2018-01-27
      • 1970-01-01
      • 2012-02-18
      • 2023-03-16
      • 2015-01-07
      • 2015-09-19
      相关资源
      最近更新 更多