linux - 有没有办法在不使用期望或生成的情况下在 shell 脚本中执行 ssh 时自动回答用户提示?
问题描述
我正在尝试使用 shell 脚本测试一个 linux 机器与其他 12 个 linux 机器之间的 ssh 信任,并且我正在尝试自动将用户输入作为“是”传递给以下问题。
您确定要继续连接(是/否)?
但脚本失败并出现错误“主机密钥验证失败”。我在其中一台服务器上使用 << EOT 手动执行了 ssh 命令,但我仍然收到用户提示问题。在运行 ssh 命令时,是否有任何其他方法可以自动为用户提示传递输入值?
注意:我不能使用 spawn 或者除了一些系统限制之外,由于组织访问限制,我无法安装它们。
我尝试了以下选项,但没有一个对我有用
[command] << [EOT, EOL, EOF]
echo 'yes'
[EOT, EOL, EOF]
yes | ./script.sh
printf "yes" | ./script.sh
echo "yes" | ./script.sh
./script.sh 'read -p "Are you sure you want to continue connecting (yes/no)?";echo "yes"'
sh```
for server in `cat server_list` ; do
UPPER_MACHINE_NAME=`echo $server | cut -d '.' -f 1`
UPPER_MACHINE_NAME=${UPPER_MACHINE_NAME^^}
ssh -tt user@$UPPER_MACHINE_NAME << EOT
echo 'yes'
touch /usr/Finastra/sshtest.txt
EOT
done
```
解决方案
推荐阅读
- python - 设计卡尔曼滤波器
- c++ - 如何在 C++ 项目中包含 ROS 消息过滤器
- objective-c - 从另一个类访问属性,单独的 XIB
- java - Android 在根 sdcard 路径(/sd_card/test/)创建文件夹失败。即使在授予写权限之后
- javascript - Stripe PaymentIntent 3DSecure for Cordova 应用程序的详尽导航列表
- android - 如何在手机存储中使用我们的 android 应用程序的名称创建一个文件夹?
- spring - ManyToOne 在 Spring Boot Test 中给出 null
- jms - 连接时连接被拒绝:MQJE001:完成代码“2”,原因“2538”
- angular - Angular 9:类型错误产品未定义
- c# - .NET Core 3 MVC 从 HTTP 下载文件并使用最小内存重新交付给客户端