【发布时间】:2018-06-14 00:36:25
【问题描述】:
我正在尝试运行 ssh -T git@gitlab.com 来测试我与 gitlab 的连接。
当我登录机器并通过命令行运行它时,我可以使用 ssh-key 连接到 gitlab。 (在与 Jenkins 相同的用户上下文和与 Jenkins 相同的工作目录中)
但是,一旦我注销并再次登录,我就无法通过 Jenkins 的 ssh 连接到 Gitlab。
这是我正在做的事情:
对于登录,用户是Jenkins,但它在 ec2 实例中。因此,在登录 ec2 实例后,我正在使用 sudo su jenkins 登录 Jenkins 用户。
登录后,我将使用以下命令添加 ssh 密钥:
eval `ssh-agent -s`
ssh-add <mySshKey>
ssh -vT git@gitlab.com
我得到的输出是:
Welcome to GitLab, @vighneshpai!
但是,当我使用exit 注销并再次登录并尝试ssh -vT git@gitlab.com 时,它失败了。说Permission denied (publickey)
知道为什么会这样吗?
【问题讨论】:
-
您的交互式会话在
debug1: Offering RSA public key: gitlab-key之后成功,您的非交互式会话在它不提供该公钥时失败。大概这意味着您没有将该密钥提供给非交互式会话,可能是因为您没有使用 SSH 代理来传递密钥。您可能希望使用特定于机器的密钥,并让您的 Jenkins 有权访问和使用该密钥,而不是来自代理的密钥。
标签: git amazon-web-services jenkins ssh gitlab