在 ssh 脚本中发送密码

在 ssh 脚本中发送密码

sshconnect我为一些用户编写了一个脚本,该脚本需要 2 个变量,usertype因此sitenumber用户使用该脚本通过用户类型以 ssh 方式连接到该站点号码。

例如用户输入以下内容:sshconnect read@11脚本将允许用户通过 ssh 连接到站点编号 11(映射到 IP 地址)并读取用户名。

但当这种情况发生时,用户将连接到该站点并被要求输入读取的用户名的密码。但我不希望用户自己知道或输入密码,而是让脚本发送密码。

有没有办法在脚本中发送密码?

谢谢,彼得

答案1

有多种可能性。您可以使用expect脚本或简单sshpass,但密码将写入脚本本身,因此用户可以从那里读取它(这不是安全的)。

简而言之:

sshpass -p password ssh user@host

更好的解决方案是使用密钥对的无密码身份验证。

简而言之,您将创建一个新的密钥对,将其存储在服务器中并将其合并到您的脚本中:

ssh-keygen -t rsa -f key_file -P '' # prepare the key pair
ssh-copy-id user@host               # enter the password once
ssh -i key_file user@host           # logs in without password

相关内容