我们有 base64 编码的 SSH 密钥密码(所以不是用户帐户密码!)。
我们必须保持一个通往某个地方的 SSH 隧道打开。
但有时连接会出现问题,SSH 会话会终止。
当我们启动SSH隧道时,SSH私钥是用密码加密的,因此需要人输入密码。
我们知道,将 ssh 私钥密码保存在文件中只是晦涩难懂,但它会有所帮助:)
问题: 我们如何在打开隧道时自动输入密码?也许“期望”能有所帮助?
答案1
首先,最好的解决方案是使用私钥/公钥自动连接而无需密码,如果连接丢失,可以使用 autossh 来保持连接。请按照此说明进行操作。您可以在客户端中使用以下命令创建 SSH 密钥对,将密码保留为空,以无需密码即可连接:
ssh-keygen -t rsa -b 4096
然后,使用以下命令将 SSH 密钥复制到服务器:
ssh-copy-id [email protected]
现在您可以无需密码即可连接服务器。最后安装autossh
并执行与服务器的连接以创建隧道:
autossh -M 0 -fN -o "ServerAliveInterval 30" -i /path/id_rsa -L 3307:localhost:3306 user@server