我在tcsh
中有以下脚本,如下所示:
df=`ssh $some_server 2>/dev/null df $2 -k`
echo $df
Perl
脚本运行这个tcsh
脚本,我有以下两个问题:
perl
脚本或tcsh
脚本?据我了解,如果我没有ssh密钥,它会要求输入密码。如果用户没有ssh密钥,我想向用户打印一个基本警告。
当ssh
无法建立与服务器的连接时,它不会告诉您原因,但您可以在详细模式下运行它并在之后分析输出。
例如,使用以下命令:
ssh -vvv -i $path_to_key -o BatchMode=yes \
-l $remote_user $remote_host echo ok 2>error.log
然后,如果失败,请检查error.log
是否有问题原因。
请注意,调试输出可能会在不同的ssh
版本之间发生变化,因此依赖于它的任何解决方案都不会非常强大。你应该考虑它只是一个提示。