繁体   English   中英

为什么 SSH 不能从 GitLab public-runner 中的 Docker 容器到我的服务器,而我可以从我的机器使用相同的确切图像?

[英]Why can't SSH to my server from Docker container inside a GitLab public-runner, while I can from my machine using the same exact image?

我正在尝试将 SSH 从 GitLab 公共运行程序中的 Docker 容器中的 EC2 实例运行我的 CICD“部署”作业。 当我在我的机器上使用相同的确切图像旋转 Docker 容器时,我可以 SSH 到我的 EC2 实例就好了。

我有 Terraform 在 AWS 上启动实例,我尝试从 CICD 作业中打印新创建的实例的私钥,并将该密钥用于 SSH 从我的机器到实例,它可以工作。 但是,在 CICD 工作中,它给了我“连接被拒绝”。

我将 -vvv 添加到 SSH 命令中进行调试,但没有任何用处。

ssh -vvv -o StrictHostKeyChecking=no -tt -i ssh/id_rsa ubuntu@$(terraform output -json | jq '.mpass_ip.value' | xargs)
OpenSSH_8.8p1, OpenSSL 1.1.1l  24 Aug 2021
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolve_canonicalize: hostname 44.192.56.49 is address
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/root/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/root/.ssh/known_hosts2'
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug3: ssh_connect_direct: entering
debug1: Connecting to 44.192.56.49 [44.192.56.49] port 22.
debug3: set_sock_tos: set socket 3 IP_TOS 0x48
debug1: connect to address 44.192.56.49 port 22: Connection refused
ssh: connect to host 44.192.56.49 port 22: Connection refused

在过去的 4 天里,这个问题一直困扰着我,我尝试了很多东西,但似乎没有任何效果。

您的connection refused错误指向网络层问题,而不是 SSH 本身。

您必须更新 VPC 上的防火墙以允许端口 22 上的传入 TCP 流量,但请将其限制为您正在使用的 Gitlab 实例的 IP 地址。

这是供参考的安全组文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM