我正在我的脚本中执行以下内容:
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
参考:
答案2
有多种方法可以做到这一点,但我建议使用公钥/私钥而不是传递密码(这是可能的)。关于这个问题还有很多其他答案 - 但这里有一个快速的方法:
在您登录的机器上:
创建公钥/私钥组合:
ssh-keygen -t rsa
将公钥复制到远程机器:
ssh-copy-id [email protected]
然后您需要输入密码,公钥将被复制到 192.168.1.89。此时,从第一台计算机登录时将不再要求您输入密码。