You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gitlab CI/CD流水线连接自定义端口OCI实例失败求助

解决Gitlab CI/CD连接自定义SSH端口OCI实例的主机解析错误

问题原因

这个错误的根源是SSH命令格式错误:当使用自定义端口时,不能将端口与IP用冒号拼接后作为主机名传入——SSH会把<server_ip>:<server_port>整体当作主机名去DNS解析,自然无法找到对应主机。

解决方案

  1. 使用SSH的-p参数指定端口
    这是最直接的修正方式,把端口通过-p参数单独传递,而非拼接在IP后:

    ssh -p <server_port> <username>@<server_ip>
    

    对应到Gitlab CI的.gitlab-ci.yml配置中,脚本部分应写成:

    deploy_to_oci:
      stage: deploy
      script:
        - ssh -p 2222 ops@10.0.0.5 "mkdir -p /opt/deploy"
    
  2. 通过SSH配置文件预设主机端口
    如果需要多次连接该OCI实例,可以在Gitlab Runner的执行环境中修改~/.ssh/config文件,预设主机的端口信息:

    Host oci-deploy
      HostName <server_ip>
      Port <server_port>
      User <username>
    

    之后在CI脚本里直接使用预设的主机名即可连接:

    ssh oci-deploy "echo '连接成功'"
    

额外检查项

  • 确认OCI实例的安全组、防火墙已经开放了自定义端口的SSH入站规则;
  • 在Gitlab Runner所在机器上手动执行修正后的SSH命令,验证网络连通性和权限是否正常,再放到流水线中执行。

内容的提问来源于stack exchange,提问作者Mahesh More

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 02:10:51