8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何避免每次 git push 时都指定用户名和密码?

Jochen Ritzel 1月前

30 0

我将工作推送到远程 Git 存储库。每次推送都会提示我输入用户名和密码。我想避免每次推送都出现这种情况,但如何配置才能避免这种情况?

我将 git push 我的工作转移到远程 Git 存储库。

每次推送 push 都会提示我输入 username password 。我想避免每次推送都出现这种情况,但如何配置才能避免呢?

帖子版权声明 1、本帖标题:如何避免每次 git push 时都指定用户名和密码?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Jochen Ritzel在本站《github》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 1. 生成 SSH 密钥

    Linux/Mac

    打开终端创建 ssh 密钥:

    cd ~                 #Your home directory
    ssh-keygen -t rsa    #Press enter for all values
    

    对于 Windows

    (仅当提交程序能够使用证书/私钥和公钥时才有效)

    1. 使用 Putty Gen 生成密钥
    2. 将密钥导出为开放的 SSH 密钥

    以下是 putty gen 上上述步骤的 演示

    2. 将 SSH 密钥与远程存储库关联

    此步骤会有所不同,具体取决于遥控器的设置方式。

    • p4

    • p5

    • p6

      scp ~/.ssh/id_rsa.pub YOUR_USER@YOUR_IP:~/.ssh/authorized_keys/id_rsa.pub

    1 的形式

    如果你已完成上述步骤,但仍收到密码提示,请确保你的 repo URL 格式为

    git+ssh://[email protected]/username/reponame.git
    

    而不是

    https://github.com/username/reponame.git
    

    要查看你的 repo URL,请运行:

    git remote show origin
    

    您可以使用以下方式更改 URL:

    git remote set-url origin git+ssh://[email protected]/username/reponame.git
    

    [1] This section incorporates the answer from Eric P

  • 我在 ubuntu 上运行了步骤 1 和步骤 2,但它仍然要求我输入 u_id 密码。我还运行了:ssh -T [email protected]。还是一样。该怎么办?

  • git remote set-url origin git+ssh://[email protected]/username/reponame.git 这个命令对我很有帮助。

  • 这对我有用 git remote set-url origin [email protected]:/username/projectname.git

  • 使用 Git 存储库进行永久身份验证,

    运行以下命令来启用凭证缓存。

    $ git config credential.helper store
    $ git push https://github.com/repo.git
    
    Username for 'https://github.com': <USERNAME>
    Password for 'https://[email protected]': <PASSWORD>
    

    使用时还应指定 缓存过期时间 ,

    git config --global credential.helper 'cache --timeout 7200'
    

    启用凭证缓存后,将缓存 7200秒(2小时) .

    注意: 凭证助手将未加密的密码存储在本地磁盘上。

  • 谢谢。您能解释一下 config 命令的作用吗?我想知道为什么我第一次推送到 repo 时它甚至没有要求我输入密码。

  • @vivoconunxino 可能是因为它本身就不安全。来自 git 手册页:“使用此帮助程序将以未加密的形式将您的密码存储在磁盘上,仅受文件系统权限保护。”

  • @DavidRTribble:将其设置为缓存?或者删除相关文件,请参阅 git-scm.com/docs/git-credential-store

  • Aga 1月前 0 只看Ta
    引用 10

    @DavidRTribble:更好:git config --unset credential.helper

  • 如果你已经设置了 SSH 密钥,但仍收到密码提示,请确保你的 repo URL 格式为

    git+ssh://[email protected]/username/reponame.git
    

    而不是

    https://github.com/username/reponame.git
    

    要查看你的 repo URL,请运行:

    git remote show origin
    

    你可以像这样更改 URL git remote set-url

    git remote set-url origin git+ssh://[email protected]/username/reponame.git
    
  • 在我本地使用 git init,然后尝试从 GitHub 网站上的新 repo 添加远程后进行推送后,这个问题就解决了。

  • 您可以省略 \'git+ssh://\' 并直接使用 [email protected]/username/reponame.git

  • 只需使用 --repo git push 命令的选项即可。像这样:

    $ git push --repo https://name:[email protected]/name/repo.git
    
  • 或者你可以使用 git remote set-url origin https://name:[email protected]/repo.git 默认设置

  • 我注意到,如果您不介意每次都被催促输入密码,将 URL 设置为 [email protected]/....git 也是可行的。

  • 引用 17

    对于 github 用户,git push --repo https://github.com/Username/repo 无需 .git 扩展名即可工作

  • 无限期储蓄

    您可以 git-credential-store git-credential-store

    git config credential.helper store
    

    它将 你的密码以未加密的形式存储在文件系统中 :

    使用此帮助程序会将您的密码以未加密的形式存储在磁盘上,仅受文件系统权限的保护。如果这不是一个可接受的安全权衡,请尝试 git-credential-cache,或寻找与您的操作系统提供的安全存储集成的帮助程序。

    暂停

    使用 git-credential-cache ,它默认存储密码 15 分钟。

    git config credential.helper cache
    

    要设置不同的超时时间,请使用 --timeout (此处为 5 分钟)

    git config credential.helper 'cache --timeout=300'
    

    无限期安全保存 (OS X 和 Windows)

    • 如果您使用的是 Mac,Git 附带 “osxkeychain”模式 ,该模式将凭据缓存在附加到您的系统帐户的安全钥匙串中。此方法将凭据存储在磁盘上,并且它们永不过期,但它们使用存储 HTTPS 证书和 Safari 自动填充的同一系统进行加密。在命令行上运行以下命令将启用此功能: git config --global credential.helper osxkeychain 。您还需要使用 Keychain 应用程序将凭据存储在 Keychain 中。
    • 如果您使用的是 Windows,则可以 安装一个名为“Git Credential Manager for Windows”的助手。 它类似于上面描述的“osxkeychain”助手,但使用 Windows Credential Store 来控制敏感信息。它可以在 https://github.com/Microsoft/Git-Credential-Manager-for-Windows 。[重点是我的]
  • 对于 Windows,credential.helper 缓存不起作用。它应该是 git config --global credential.helper wincred。

  • 当你被迫使用 https 时,这很有用。如果我使用 ssh,服务器上的 git 就会挂起,所以我没有 SSH 密钥选项。

返回
作者最近主题: