我有一个使用ssh密钥连接到特定用户的远程服务器的脚本。但是,id用户信息已更改且密钥未更新,脚本将挂起等待密码。在Perl中提示输入密码时死亡
当系统提示输入密码时,如何捕获并丢弃DIE?
例如,如果我使用:
system("ssh -C [email protected] -i /.ssh/USER.key ...");
和USER不在USER.key相同的用户,它挂在等待一个密码。我宁愿让它死亡。
不使用perl模块来处理这个问题的最佳方法是什么?
我有一个使用ssh密钥连接到特定用户的远程服务器的脚本。但是,id用户信息已更改且密钥未更新,脚本将挂起等待密码。在Perl中提示输入密码时死亡
当系统提示输入密码时,如何捕获并丢弃DIE?
例如,如果我使用:
system("ssh -C [email protected] -i /.ssh/USER.key ...");
和USER不在USER.key相同的用户,它挂在等待一个密码。我宁愿让它死亡。
不使用perl模块来处理这个问题的最佳方法是什么?
试试这个:
system('ssh -o BatchMode=yes -C [email protected] -i /.ssh/USER.key ...');
的批处理模式选项将防止SSH提示输入密码,如果需要密码将简单地终止。
你是否考虑过使用从CPAN提供的任何SSH模块作为Net :: SSH2或Net :: OpenSSH?
这个问题不是关于Perl,而是关于如何调用'ssh'命令行客户端。 – 2010-11-17 17:01:24