再次使用公钥进行身份验证的问题 GCP Source Repository
Posted
技术标签:
【中文标题】再次使用公钥进行身份验证的问题 GCP Source Repository【英文标题】:Issues with authentication again GCP Source Repository with publickey 【发布时间】:2021-12-14 01:27:58 【问题描述】:我必须进行空白安装并使用该设置新的私钥。我是根据https://cloud.google.com/source-repositories/docs/authentication创建的。
xxxx@xxxxx.ch@source.developers.google.com: Permission denied (publickey). fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
我按照文档进行了多次尝试。总是一样。我已经用 bitbucket 安装了相同的公钥并尝试克隆一个 repo。像魅力一样工作。所以必须正确设置密钥。
我已经运行 ssh -vT xxxx@xxxxx.ch@source.developers.google.com -p2022
哪些输出:
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
debug1: Connecting to source.developers.google.com [108.177.127.82] port 2022.
debug1: Connection established.
debug1: identity file C:\\Users\\schae/.ssh/id_rsa type 0
debug1: identity file C:\\Users\\schae/.ssh/id_rsa-cert type -1
debug1: identity file C:\\Users\\schae/.ssh/id_dsa type -1
debug1: identity file C:\\Users\\schae/.ssh/id_dsa-cert type -1
debug1: identity file C:\\Users\\schae/.ssh/id_ecdsa type -1
debug1: identity file C:\\Users\\schae/.ssh/id_ecdsa-cert type -1
debug1: identity file C:\\Users\\schae/.ssh/id_ed25519 type -1
debug1: identity file C:\\Users\\schae/.ssh/id_ed25519-cert type -1
debug1: identity file C:\\Users\\schae/.ssh/id_xmss type -1
debug1: identity file C:\\Users\\schae/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_for_Windows_8.1
debug1: Remote protocol version 2.0, remote software version Go
debug1: no match: Go
debug1: Authenticating to source.developers.google.com:2022 as 'xxxxx@xxxxxx.ch'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:AGvEpqYNMqsRNIviwyk4J4HM0lEylomDBKOWZsBn434
debug1: Host '[source.developers.google.com]:2022' is known and matches the ECDSA host key.
debug1: Found key in C:\\Users\\schae/.ssh/known_hosts:1
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 134217728 blocks
debug1: pubkey_prepare: ssh_get_authentication_socket: No such file or directory
debug1: Will attempt key: C:\\Users\\schae/.ssh/id_rsa RSA SHA256:tV/7LTCWmmg0nL2v0iy5D9/zyyLm4C4wykndp764WlI
debug1: Will attempt key: C:\\Users\\schae/.ssh/id_dsa
debug1: Will attempt key: C:\\Users\\schae/.ssh/id_ecdsa
debug1: Will attempt key: C:\\Users\\schae/.ssh/id_ed25519
debug1: Will attempt key: C:\\Users\\schae/.ssh/id_xmss
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: C:\\Users\\schae/.ssh/id_rsa RSA SHA256:tV/7LTCWmmg0nL2v0iy5D9/zyyLm4C4wykndp764WlI
debug1: Server accepts key: C:\\Users\\schae/.ssh/id_rsa RSA SHA256:tV/7LTCWmmg0nL2v0iy5D9/zyyLm4C4wykndp764WlI
debug1: Authentication succeeded (publickey).
Authenticated to source.developers.google.com ([108.177.127.82]:2022).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: pledge: network
shell request failed on channel 0
在最后几行它说:“身份验证成功”。所以我想用钥匙一切都应该没问题。但我无法克隆存储库。我错过了什么??????
29.10.2021 更新
该 Google 用户具有以下权限:source.repos.create、source.repos.get、source.repos.list、source.repos.update(实际上甚至更多),是的,该用户也是“源存储库管理员” "
也许还有一件事:一切都完美无缺,直到我不得不重新安装本地计算机并重新设置所有内容。在过去一年左右的时间里,没有任何问题。重新安装后,我所做的只是设置一个新的私钥/公钥并在此处安装公钥https://source.cloud.google.com/user/ssh_keys 我不知道还有什么可做的?
我又做了一些实验。我没有从 .ssh 文件夹中删除公钥和私钥。我已经从 GCP 和 Bitbucket 中删除了所有公钥。两者都有相同的错误(显然)。然后我将密钥添加到 bitbucket -> 工作正常。然后我将密钥添加到 GCP 并尝试克隆一个 repo -> 没有成功。权限被拒绝。
调试信息看起来很奇怪?什么意思?
shell request failed on channel 0
【问题讨论】:
您是否已经在IAM Page下设置了用户的roles and permission (roles/source.admin, source.repos.get)? 是的。正如我所提到的:对于同一用户使用不同的密钥从不同的计算机访问它。 @rapsli - 您的评论没有意义。编辑您的问题并指定该帐户正在使用的权限。另一个键无关紧要。 谢谢。因此该 google 用户具有以下权限:source.repos.create、source.repos.get、source.repos.list、source.repos.update(实际上甚至更多),是的,该用户也是“源存储库管理员” 现在这很奇怪。我使用了不同的 key_type ecdsa ......就像魔法一样,它现在正在工作。难道这是某种缓存问题?! 【参考方案1】:将 key_type 更改为 ecdsa 并且有效。可能是某种缓存或某个键卡在某处。
【讨论】:
以上是关于再次使用公钥进行身份验证的问题 GCP Source Repository的主要内容,如果未能解决你的问题,请参考以下文章
使用 python 对 GCP 计算 API 端点进行身份验证
GCP“管理元数据中的 SSH 密钥”如何在幕后工作 [关闭]