使用docker -H选项连接远程主机时如何指定SSH私钥文件
Docker远程SSH连接指定私钥解决方案
方案1:配置SSH规则永久生效
编辑本地SSH用户配置文件 ~/.ssh/config(Windows系统路径为C:\Users\用户名\.ssh\config),添加以下配置:
Host <替换为远程主机IP地址> User ec2-user IdentityFile <替换为你的.pem私钥文件绝对路径> IdentitiesOnly yes
配置完成后执行权限修正,避免SSH安全校验失败:
chmod 600 ~/.ssh/config chmod 600 <你的.pem私钥文件绝对路径>
后续执行Docker命令不需要做任何修改,原有命令即可正常运行:
docker -H ssh://<远程主机IP地址> container ls
方案2:单次命令临时指定私钥
如果不想修改全局SSH配置,可以通过DOCKER_SSH环境变量自定义SSH执行参数,单次调用时直接指定私钥:
DOCKER_SSH="ssh -i <你的.pem私钥文件绝对路径>" docker -H ssh://ec2-user@<远程主机IP地址> container ls
原理解释
SSH默认会自动读取~/.ssh/id_rsa作为默认私钥文件,这也是你将pem文件重命名为id_rsa后命令可以正常执行的原因。上述两种方案都是主动指定私钥路径,无需修改原有私钥的文件名。
内容的提问来源于stack exchange,提问作者gfree
相关产品推荐
相关产品推荐

