gpt4 book ai didi

linux - 使用 Drone 从 Docker 镜像进行 SSH

转载 作者:太空狗 更新时间:2023-10-29 12:13:16 25 4
gpt4 key购买 nike

我已经尝试了很长时间才能让 Drone 运行 SSH 命令,它在名为 bb 的 Docker 容器中运行。根据其他线程中的一些建议,我在我的 Dockerfile 中添加了 RUN echo "IdentityFile/root/.ssh/id_rsa">>/etc/ssh/ssh_config

我已经使用 docker run -it bb/bin/bash 检查 SSH key 是否存在,我可以使用该交互式终端成功通过 SSH 连接到远程主机。

但是,当我尝试使用 .drone.yml 构建脚本执行相同的命令时,如下所示:

image: bb
script:
- whoami
- ssh -vvv -t -t 192.0.2.1 "whoami"

...在被降级为基于密码的身份验证后,我收到“权限被拒绝”错误。 (whoami 在容器内运行,输出 root,然后继续执行 ssh 命令。)

我已经将详细的输出归结为这个相关的部分:

debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug2: input_userauth_pk_ok: fp f2:...
debug3: sign_and_send_pubkey: RSA f2:...
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,password
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password

...它清楚地写着“我们没有发送数据包,禁用方法”。我已经使用 ssh-keygen -lf/root/.ssh/id_rsa 检查了 key 的指纹,它与输出中的指纹相匹配。

然后我在远程主机上查看了 auth 日志 (/var/log/auth.log),我可以看到我成功的测试,但是当 Drone 运行它的容器时,日志报告说 `RSA_public_decrypt失败的'。这是日志。

成功(交互式容器)登录:

Accepted publickey for root from 192.0.2.1 port 59472 ssh2: RSA f2:...
pam_unix(sshd:session): session opened for user root by (uid=0)
Received disconnect from 192.0.2.1: 11: disconnected by user
pam_unix(sshd:session): session closed for user root

失败(无人机容器)登录:

error: RSA_public_decrypt failed: error:04067084:lib(4):func(103):reason(132)
Failed password for root from 192.0.2.1 port 54172 ssh2
Failed password for root from 192.0.2.1 port 54172 ssh2
Connection closed by 192.0.2.1 [preauth]

所以看起来我的 key 不是由 Drone 容器发送的。我在构建脚本中运行了 whoami,它报告说它以 root 身份运行,这是我所期望的。

我怎样才能让它发挥作用?

最佳答案

知道了。在挖掘该存储库的设置时,我注意到一个“公钥”字段:

enter image description here

我尝试将其添加到 authorized_keys 文件,并运行我的 .drone.yml,你知道吗 - 它起作用了。回去检查文档 - 无处可寻。未记录的 super secret 领域 FTW。

关于linux - 使用 Drone 从 Docker 镜像进行 SSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34123922/

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