gpt4 book ai didi

git - 使用 ssh 进行远程 Git pull 会导致权限被拒绝(公钥)?

转载 作者:行者123 更新时间:2023-12-02 14:23:16 25 4
gpt4 key购买 nike

我在 Atlassian Stash 的托管实例中有一个 git 存储库。然后我有三台机器:olympus、zeus 和 hera,我在其中部署了最新版本的软件系统。为了实现自动化,我想从 olympus 远程部署到我尝试使用 ssh 进行的其他机器上。和 git pull但这失败了 Permission denied (publickey). .我基本上这样做并得到:

azg@olympus:~$ ssh azg@zeus 'cd ~/my/project/release/deploy/location/; git pull'
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我有以下内容:
  • 每台机器都有不同的 azg 用户(没有时间安装 LDAP 等),所以我有 azg@olympus、azg@zeus 和 azg@hera。我为每个用户生成了 ssh id_rsa key 对。
  • 我已经填充了每个 azg 用户 authorized_keys与其他人的相应 id_rsa.pub
  • Stash azg 用户为每个 azg 用户(azg@olympus、azg@zeus、azg@hera)配置了所有 id_rsa.pub 的副本,因此我可以通过 ssh 从每台机器克隆、 pull 或推送,而无需每次都输入密码.因此我不能做任何问题:
    azg@olympus:~/code$ git clone ssh://azg@olympus:7999/pm/pm.git
    Cloning into 'pm'...
    remote: Counting objects: 555, done.
    remote: Compressing objects: 100% (271/271), done.
    remote: Total 555 (delta 203), reused 555 (delta 203)
    Receiving objects: 100% (555/555), 9.54 MiB, done.
    Resolving deltas: 100% (203/203), done.

  • 我可以分别从每台机器上做同样的事情。但是,如果我先远程登录,即每次都询问我 key “/home/azg/.ssh/id_rsa”的密码短语,我就无法做到这一点。
    azg@olympus:~$ ssh azg@zeus
    Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.5.0-43-generic x86_64)

    * Documentation: https://help.ubuntu.com/

    Last login: Wed Nov 27 17:01:33 2013 from olympus
    azg@zeus:~$ cdc
    azg@zeus:~/code$ git clone ssh://azg@olympus:7999/pm/pm.git
    Cloning into 'pm'...
    Enter passphrase for key '/home/azg/.ssh/id_rsa': <<<<<<<<<<< WHY???
    remote: Counting objects: 555, done.
    remote: Compressing objects: 100% (271/271), done.
    remote: Total 555 (delta 203), reused 555 (delta 203)
    Receiving objects: 100% (555/555), 9.54 MiB | 145 KiB/s, done.
    Resolving deltas: 100% (203/203), done.

    最佳答案

    听起来您使用密码在 Zeus 上创建了 RSA key 对。 (这与帐户密码不同;它是解密 key 文件本身的密码。)考虑重新生成 key 对并确保在 ssh-keygen 时不输入任何内容。要求输入密码。

    此外,尽管一些安全专家可能不赞成这种做法,但我建议只创建一个 key 对并在所有机器上使用它。然后 authorized_keys文件只需要一行,并且在所有主机上都可以相同。

    ::edit::正如 OP 在评论中指出的那样,如果您的操作系统坚持让您背负 ssh-agent (我建议禁用),您需要运行 ssh-add在所有机器上以获得 ssh-agent停止发出警告。

    关于git - 使用 ssh 进行远程 Git pull 会导致权限被拒绝(公钥)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20247288/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com