如何通过字符串而不是文件传递私有 ssh 密钥?

如何通过字符串而不是文件传递私有 ssh 密钥?

我有一个私钥文件的文本。我想通过 ssh 连接到其他节点,但我所在的网关不提供文件系统访问权限。如何通过文本表示的关键和不是文件用它到 ssh 客户端?

答案1

听起来您实际上并不需要将密钥存储在堡垒上,但实际上只需要连接到另一侧的某些东西。如果确实如此,并且只要您连接的 SSH 服务器没有阻止它,您应该能够使用 OpenSSH 的 ProxyCommand。在以下示例中,堡垒是您用来访问远程网络的外部主机。

ssh -o ProxyCommand "ssh bastion.example.com -W %h:%p" internal.example.com

由于这并不容易输入,我建议将其放入您的 ${HOME}/.ssh/config 中,如下所示:

Host internal.example.com
     User username
     Hostname internal.example.com
     ProxyCommand ssh bastion.example.com -W %h:%p

如有必要,主机名可以替换为 IP 地址。

相关内容