如何在脚本中 ssh 到远程而无需提供密码

如何在脚本中 ssh 到远程而无需提供密码

我正在我的脚本中执行以下内容: ssh [email protected]

要求我输入密码 [email protected]'s password:

如何执行脚本来创建 ssh 连接,然后将密码传递给其中,这样我就不必输入密码?

答案1

您要寻找的是什么ssh keys,那么您就不必输入 a password

要生成 RSA 密钥,请在命令行上输入:

ssh-keygen -o -b 4096 -t rsa

请注意:如果您不对您的私钥进行密码保护,则任何有权访问您计算机的人都可以通过 SSH(无需提示输入密码)连接到具有相应公钥的任何远程系统上的您的帐户。

您的私钥将使用默认文件名(例如id_rsa)或您指定的文件名(例如 my_ssh_key)生成,并存储在计算机上主目录外的 .ssh 目录中(例如~/.ssh/id_rsa~/.ssh/my_ssh_key)。

如果您在远程系统上的帐户尚不包含~/.ssh/authorized_keys文件,请创建一个文件;在命令行上输入以下命令:

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

要将密钥复制到远程服务器:

ssh-copy-id是某些操作系统上可用的实用程序,可以SSH通过SSH.

要使用ssh-copy-id,请传递您的用户名和您要访问的服务器的 IP 地址:

ssh-copy-id USER@IP-ADDRESS

参考:

将公钥身份验证与 SSH 结合使用

设置 SSH 公钥身份验证以连接到远程系统

答案2

有多种方法可以做到这一点,但我建议使用公钥/私钥而不是传递密码(这是可能的)。关于这个问题还有很多其他答案 - 但这里有一个快速的方法:

在您登录的机器上:

创建公钥/私钥组合:

ssh-keygen -t rsa

将公钥复制到远程机器:

ssh-copy-id [email protected]

然后您需要输入密码,公钥将被复制到 192.168.1.89。此时,从第一台计算机登录时将不再要求您输入密码。

相关内容