Dockerfile:跳过私钥的密码
我使用私人密钥从我的Docker文件中从Github下载我的存储库。 我有这样的东西:
RUN mkdir -p /root/.ssh && echo "$MY_PRIVATE_KEY" >/root/.ssh/id_rsa && chmod 0600 /root/.ssh/id_rsa && ssh-keyscan github.com >> /root/.ssh/known_hosts && cat /root/.ssh/known_hosts && ssh -vvv git@github.com && pip install git+ssh://git@github.com/my_project.git@v1.0.0 && rm /root/.ssh/id_rsa
MY_PRIVATE_KEY
是一个参数。 我无法重新创build此密钥。 我的问题是,在连接过程中,我收到以下错误: key_load_private_type: incorrect passphrase supplied to decrypt private key
有没有可能跳过密码?
密码需要解密密钥。 你不能“跳过”它。 您可以使用ssh-keygen -p
删除密钥上的密码(请参阅手册页以了解详细信息)。
您可能需要调查GitHub部署密钥的使用情况,该密钥是每个存储库的ssh密钥,它授予对存储库的只读访问权限。 这些都是为了解决你自己所处的情况:需要从需要authentication的GitHub仓库自动部署软件。
您的MY_PRIVATE_KEY
似乎被密码保护(具有空密码的密钥与未encryption的密钥不同)。
.ssh/id_rsa
的密钥通常不是密码保护的,而是受到只允许所有者访问(0600)的权限保护。
您可以使用OpenSSL从您的密钥中删除密码,如下所示:
set MY_PRIVATE_KEY = `echo $MY_PRIVATE_KEY | openssl rsa`
id_rsa
的内容应该如下所示:
-----BEGIN RSA PRIVATE KEY----- . . . -----END RSA PRIVATE KEY-----