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

在Docker部署的Jenkins中配置SSH密钥遇权限问题求助

解决Docker Jenkins中SSH密钥权限问题的步骤

核心原因

你看到的权限错误是Docker容器内部的Linux环境报的,并非Windows本地权限问题。即便在Windows上修改了文件权限,复制到容器后,权限会被Docker的文件挂载规则重置为0755,导致SSH拒绝使用该密钥。

具体解决方法

方法1:进入容器内直接修改权限

  1. 打开Windows命令提示符或PowerShell,执行命令进入Jenkins容器:
    docker exec -it <你的Jenkins容器名/容器ID> /bin/bash
    
  2. 切换到密钥所在目录:
    cd /root/.ssh
    
  3. 修改id_rsa文件权限为700(仅root可读可写可执行):
    chmod 700 id_rsa
    
  4. 同时确保.ssh目录权限合规:
    chmod 700 /root/.ssh
    
  5. 退出容器:
    exit
    

方法2:挂载文件时指定权限(推荐)

如果是通过挂载Windows本地的id_rsa到容器内,可在启动容器时直接指定文件权限,避免后续手动修改:

  • 使用docker run命令:
    docker run -d ... --mount type=bind,source=C:/path/to/your/local/id_rsa,target=/root/.ssh/id_rsa,readonly,mode=0700 ... jenkins/jenkins:lts
    
  • 使用docker-compose.yml配置:
    volumes:
      - C:/path/to/your/local/id_rsa:/root/.ssh/id_rsa:ro,mode=0700
    

方法3:在Jenkins构建步骤中前置权限修改

若不想手动操作容器,可在Jenkins的Shell构建步骤里先修改权限,再执行SSH命令:

chmod 700 /root/.ssh/id_rsa && ssh username@123.456.789.01

注意事项

  • Linux与Windows权限模型完全不同,不要试图通过Windows本地修改权限解决容器内的问题,复制到容器后权限会被重置。
  • 密钥文件id_rsa必须保证仅属主有读写权限,目录.ssh也需设置为仅属主可访问,否则SSH会拒绝加载密钥。

内容的提问来源于stack exchange,提问作者volume one

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:21:09