我正在尝试自动测试从 72 个远程服务器到中央服务器的无密码 ssh。我有中央服务器无密码 ssh 可用于 72 台服务器,但需要它从它们返回到中央服务器。
72 台服务器有两个 ssh 版本之一。
OpenSSH_4.3p2,OpenSSL 0.9.8e-fips-rhel5 2008 年 7 月 1 日
或者
sshg3:x86_64-unknown-linux-gnu 上的 SSH Tectia Client 6.1.8
构建:136
产品:SSH Tectia Client 许可
类型:商业
我遇到的问题是试图将ssh -V保存到一个变量中,它似乎没有打印到 STDOUT。因此,我在下面的尝试失败了。
ssh -V > someFile.txt
ssh_version=$(ssh -V)
如何轻松保存ssh -V的输出,以便可以调用适当的 ssh 批处理选项?
下面是我用于远程测试的脚本。
#!/bin/sh
ssh -V > /tmp/ssh_version_check.txt
cat /tmp/ssh_version_check.txt | grep "OpenSSH"
rc=$?
if [[ $rc == 0 ]]
then
ssh -o BatchMode=yes <central_server> "test -d /tmp"
rc=$?
if [[ $rc != 0 ]]
then
echo "$(hostname) failed" >> /tmp/failed_ssh_test.txt
fi
else
ssh -B <central_server> "test -d /tmp"
rc=$?
if [[ $rc != 0 ]]
then
echo "$(hostname) failed" >> /tmp/failed_ssh_test.txt
fi
fi