linux ssh 避免手动输入密码,有两种常见的解决方案

当你使用 SSH(Secure Shell)通过远程连接执行命令时,服务器通常要求进行身份验证。因此,如果你在脚本中使用了 SSH 命令连接另一台服务器,就需要提供相应的身份验证信息,比如密码。

在你的脚本中,当使用 ssh 命令连接到另一台服务器时,会提示输入密码,这是因为你没有在脚本中设置无密码登录或使用 SSH 密钥对进行身份验证。

为了避免手动输入密码,有两种常见的解决方案:

无密码登录:你可以配置无密码登录,即通过生成 SSH 密钥对并将公钥添加到远程服务器上,使得你可以无需密码即可与远程服务器建立 SSH 连接。具体步骤如下:

在本地机器上生成 SSH 密钥对:

ssh-keygen -t rsa
将公钥复制到远程服务器上:

ssh-copy-id root@${hostIP}
现在,你应该能够在不需要密码的情况下通过 SSH 连接到远程服务器。

使用 SSH 密钥对:与无密码登录类似,你可以生成 SSH 密钥对,并将私钥放在本地机器上,将公钥添加到远程服务器上。然后,在脚本中使用 -i 参数指定私钥文件的路径,以进行身份验证。例如:

ssh -i /path/to/private_key root@${hostIP} "exec java ..."
选择适合你需求和安全要求的方法来进行身份验证,并修改脚本以相应地设置无密码登录或使用 SSH 密钥对。这样,你就不再需要手动输入密码了。

posted @ 2023-07-05 20:53  千里送e毛  阅读(722)  评论(0编辑  收藏  举报