Bash脚本 - SSH连接

时间:2014-09-29 13:50:26

标签: bash ssh

我无法通过bash脚本为ssh连接传递密码。我有一切正常,但它仍然提示我输入密码而不是提取存储的密码。请看下面脚本的部分,让我知道是否有明显的错误:

#! /bin/bash
echo "Please enter a username:"
read user
echo "please enter a password:"
read password
echo please enter an IP address:"
read ip

ssh "$user"@"$ip"
expect "password:"
send "<password>\r"
interact

我尝试了“发送”行的不同变体。例如,我尝试过“密码\ r \ n”和密码\ r \ n。我还尝试修改“expect”行以镜像尝试的SSH连接返回的确切文本。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

SSH包含通过重定向标准I / O来防止密码被盗的代码。

正确的解决方案是使用ssh-keygen生成私钥/公钥对。在远程端安装公钥。 ssh-copy-id会有所帮助。

然后您可以使用SSH代理将私钥加载到内存中,SSH不会要求输入密码或关键短语。

相关: