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

GitLab Alpine Runner SSH连接VPS权限拒绝问题求助

GitLab CI Alpine Runner SSH Permission Denied 问题排查与解决

核心问题定位

本地执行ssh -i key root@myawesomedomain.fr -p 51仍需输入密码,说明私钥认证的核心环节存在问题,优先解决本地登录问题,Runner的认证失败会随之解决。

分步排查与修复

1. 本地私钥文件检查

  • 确保私钥权限严格为600:
    chmod 600 key
    
    SSH会拒绝权限过于开放的私钥文件,这是常见的认证失败原因。
  • 确认私钥为无密码加密:如果私钥设置了密码,GitLab CI的非交互式环境无法输入密码,导致ssh-add失败。需重新生成无密码私钥:
    ssh-keygen -t rsa -b 4096 -N "" -f key
    
  • 校验私钥格式完整性:私钥必须包含完整的头部-----BEGIN RSA PRIVATE KEY-----、尾部-----END RSA PRIVATE KEY-----,且中间每行内容无缺失。GitLab变量$SSHVPS需完整复制私钥内容(包括所有换行),避免格式损坏。

2. 服务器端authorized_keys配置修复

  • 不要覆盖已有配置:追加公钥到authorized_keys,避免丢失其他合法密钥:
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    
  • 验证公钥配对性:本地执行以下命令导出私钥对应的公钥,与服务器~/.ssh/authorized_keys中的内容完全比对:
    ssh-keygen -y -f key
    
  • 修正文件所有者与权限:确保所有文件属于root用户(因为你用root登录):
    chown -R root:root ~/.ssh
    chmod 700 ~
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

3. SSH服务器配置校验

编辑/etc/ssh/sshd_config,确保以下参数配置正确:

# 开启公钥认证
PubkeyAuthentication yes
# 允许root通过公钥登录(prohibit-password更安全,禁止密码登录)
PermitRootLogin prohibit-password
# 监听端口设置为51
Port 51

修改后重启SSH服务:

# 基于systemd的系统(如Ubuntu 16.04+/CentOS 7+)
systemctl restart sshd
# 基于init的系统
/etc/init.d/sshd restart

同时确认VPS防火墙已开放51端口:

# UFW防火墙
ufw allow 51/tcp
# iptables
iptables -A INPUT -p tcp --dport 51 -j ACCEPT

4. GitLab CI配置优化

调整CI配置,解决Alpine环境下的私钥加载问题:

deploy:
  tags:
    - springVps
  image: alpine:3.6
  stage: deploy

  before_script:
   - apk update && apk add --no-cache openssh-client
   - mkdir -p ~/.ssh
   - eval $(ssh-agent -s)
   # 使用-e参数解析换行,确保私钥完整加载
   - echo -e "$SSHVPS" | ssh-add -
   # 指定扫描51端口的主机密钥
   - ssh-keyscan -p 51 myawesomedomain.fr >> ~/.ssh/known_hosts
   # 验证私钥是否成功加载
   - ssh-add -l
  script:  
    - ssh -p 51 root@myawesomedomain.fr "echo Hello, world!"

验证步骤

  1. 本地执行ssh -i key root@myawesomedomain.fr -p 51,确认无需输入密码即可登录。
  2. 重新触发GitLab CI流水线,检查deploy阶段是否成功执行。

内容的提问来源于stack exchange,提问作者Jean Moulin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:55:03