Linux 如何使用ssh通过提供静态文本来执行键盘交互的操作

Linux 如何使用ssh通过提供静态文本来执行键盘交互的操作,linux,bash,shell,ssh,openssh,Linux,Bash,Shell,Ssh,Openssh,我正在编写一个shell脚本,使用ssh 成功登录到远程机器后,我能够执行Linux命令,现在我面临的真正问题是,尝试为另一台远程机器运行相同的脚本时,该脚本将在ssh登录时请求本地身份验证(username和password),以继续 有人能指导我如何在第一行填写我的用户名,并立即执行回车操作,以及对密码执行类似操作吗 我尝试了以下代码connect.sh sshpass -p <remote-passwd> ssh root@<remote-ip> 'bash -s'

我正在编写一个shell脚本,使用
ssh

成功登录到远程机器后,我能够执行Linux命令,现在我面临的真正问题是,尝试为另一台远程机器运行相同的脚本时,该脚本将在
ssh
登录时请求本地身份验证(
username
password
),以继续

有人能指导我如何在第一行填写我的
用户名
,并立即执行回车操作,以及对
密码
执行类似操作吗

我尝试了以下代码
connect.sh

sshpass -p <remote-passwd> ssh root@<remote-ip> 'bash -s' < test.sh
如果我运行
connect.sh
脚本,它将在不要求远程机器密码的情况下完美执行。它还执行
ls
pwd

我是否可以用我的
用户名
密码
替换
ls
pwd
,以实现我的目标

还有,我在看一些不可能的东西吗??(我在VB.NET中看到了一个类似的代码,它解决了我的问题,但它不是一个健壮的代码,我真的对
VB脚本
没有任何想法。)

更新:我能够以非交互方式登录到远程机器,但远程机器环境会立即要求本地身份验证,这同样需要键盘交互,我希望以非交互方式实现此身份验证


如果可能,您应该在服务器上配置公钥,这样就不必提供密码。这样更安全,可以更直接地解决您的问题


您可能还想研究编排框架,而不是自己实现。如果你在做一些小事,这是一个很好的选择。如果这看起来会变得更大,那么您应该研究类似的东西,它还可以额外处理系统配置和其他一百万件事情,但只需要很少的设置就可以开始了。

通过SSH自动登录确实是可能的,请参阅。有关设置无密码访问的详细信息,请看:。@bdvll我对这部分问题没有意见,我的问题是在实现这一点之后…@prince好的,那么你到底有什么问题?您可以使用“expect”语法将pass和username传递添加到BashScript中,然后运行命令。您应该配置公钥身份验证,这样就不必键入用户名和密码。谢谢@Xiong,我们将检查您提供的输入。谢谢
ls
pwd