如何确定用户是否在perl脚本中使用ssh密钥

问题描述 投票:3回答:1

我在tcsh中有以下脚本,如下所示:

df=`ssh $some_server 2>/dev/null df $2 -k` 
echo $df

Perl脚本运行这个tcsh脚本,我有以下两个问题:

  1. 第一个命令做什么?
  2. 在运行此命令之前,如何确定是否有ssh键(例如,从perl脚本或tcsh脚本?

据我了解,如果我没有ssh密钥,它会要求输入密码。如果用户没有ssh密钥,我想向用户打印一个基本警告。

perl ssh ssh-keys tcsh
1个回答
1
投票

ssh无法建立与服务器的连接时,它不会告诉您原因,但您可以在详细模式下运行它并在之后分析输出。

例如,使用以下命令:

ssh -vvv -i $path_to_key -o BatchMode=yes \
    -l $remote_user $remote_host echo ok 2>error.log

然后,如果失败,请检查error.log是否有问题原因。

请注意,调试输出可能会在不同的ssh版本之间发生变化,因此依赖于它的任何解决方案都不会非常强大。你应该考虑它只是一个提示。

© www.soinside.com 2019 - 2024. All rights reserved.