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
相关产品推荐
相关产品推荐

