【问题标题】:Git enter long passphrase for every pushGit为每次推送输入长密码
【发布时间】:2011-05-24 05:37:29
【问题描述】:

每次我尝试将任何内容推送到 GitHub 时,它都会询问我的地址 git@github.com:...,然后它需要密码。有没有办法实现自动化?

我正在使用 Linux Ubuntu。

【问题讨论】:

  • 再给我们一些信息:你是否将 github 添加为远程?你怎么称呼git push?该命令的确切输出是什么?

标签: linux git ssh


【解决方案1】:

您可以使用ssh-agent 来记住您的密码(Gnome 会自动为您运行此密码,通常...)。

$ ssh-agent bash
$ ssh-add 
Enter passphrase for /home/elyobo/.ssh/id_rsa: 
Identity added: /home/elyobo/.ssh/id_rsa (/home/elyobo/.ssh/id_rsa)

从现在开始,在您运行此程序的终端中,您的密码将被记住。

理想情况下,您应该让它自动运行,这样在 gnome 中运行的所有 shell 都可以运行;查看Gnome Keyring

【讨论】:

  • 我没有使用任何 GUI。只是终端。我正在使用 Ubuntu 服务器。您的代码确实有效。现在问题是我需要重新输入:git@github.com:username/... .git 有没有解决办法?
  • 啊,是的,对于服务器,您需要执行上述操作。但是,如果您可以使用本地计算机上的密钥访问存储库,您仍然可以使用 ssh -A 转发密钥(查找手册页)并使用桌面上的 ssh-agent 来处理密码,它将保存您需要付出一些努力(如果您打开它们,可以在多个终端中工作)。我原以为你可以只运行git push 或其他东西,但我对 git 不是很熟悉,只是 SSH :)
  • 检查 ssh 代理转发,没有理由跨多个系统管理密钥。
【解决方案2】:

这是因为您使用的是 HTTPS(类似于 https://github.com/felipelalli/private.git)而不是 SSH(类似于 git@github.com:felipelalli/private.git)。

如果需要克隆 SSH,然后按照以下步骤授权您的机器:https://help.github.com/articles/generating-ssh-keys

【讨论】:

    【解决方案3】:

    另一种使用ssh-agentssh-add 命令将您的私人身份添加到身份验证代理的方法。

    $ eval "$(ssh-agent -s)"
    Agent pid 1174
    $ ssh-add ~/.ssh/id_rsa
    Enter passphrase for /home/james/.ssh/id_rsa: 
    Identity added: /home/james/.ssh/id_rsa (/home/james/.ssh/id_rsa)
    

    【讨论】:

      猜你喜欢
      • 2021-07-02
      • 2014-11-02
      • 2022-01-25
      • 1970-01-01
      • 2023-02-16
      • 2013-09-01
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多