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

Docker中运行SSH隧道容器报错:私钥权限配置过宽

Docker SSH隧道容器启动失败,提示私钥权限过宽

报错信息

==== SSH keys ==========================================================
Adding all keys in $SSH_AGENT_KEYS environment variable to agent...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/ssh/id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored.

环境信息

  • Docker版本:26.1.1

Docker Compose配置

# SSH tunnel
image: hgdata1/ssh-tunnel:latest
networks:
  - xxx
ports:
  - "443:443"
environment:
  - TUNNEL_REMOTE_HOST=${xxxxx}
  - SSH_REMOTE_HOSTNAME=${xxxx}
  - SSH_REMOTE_USER=my.user
  - SSH_AGENT_KEYS=id_rsa_private_key
  - SSH_STRICT_HOST_KEY_CHECKING=no
volumes:
  - "~/.ssh:/ssh"

补充说明

  • 本地已拥有公私钥对,并已导出至Shell环境。

解决方案

  • 调整本地私钥文件权限:SSH对私钥权限要求严格,必须限制为仅所有者可读可写。在本地终端执行以下命令修改权限:

    chmod 600 ~/.ssh/id_rsa_private_key
    

    注意:如果你的私钥文件名是id_rsa,则替换命令中的文件名。

  • 验证容器内权限映射:若调整本地权限后仍报错,可在Docker Compose配置中添加user指令,指定与本地用户匹配的UID/GID(通过id命令查看本地用户的UID和GID),避免容器以root用户运行导致的权限问题:

    # 在原配置中添加
    user: "1000:1000"
    
  • 核对私钥文件名配置:确保SSH_AGENT_KEYS的值与挂载目录下的私钥文件名完全一致。比如本地私钥是id_rsa,则环境变量应设为SSH_AGENT_KEYS=id_rsa。

内容的提问来源于stack exchange,提问作者Abigail Larsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:15:59