在perl中提示输入密码时死亡

Chu*_*ess 2 ssh perl

我有一个脚本,它使用ssh密钥连接到特定用户的远程服务器.但是,如果用户信息被更改且密钥未更新,则脚本将挂起等待密码.

如何在提示输入密码时捕获此信息并抛出DIE?

例如,如果我使用:

system("ssh -C USER@someserver.com -i /.ssh/USER.key ...");
Run Code Online (Sandbox Code Playgroud)

和USER在USER.key中不是同一个USER,它挂起等待密码.我宁愿让它死.

在不使用perl模块的情况下处理此问题的最佳方法是什么?

cdh*_*wie 7

试试这个:

system('ssh -o BatchMode=yes -C USER@someserver.com -i /.ssh/USER.key ...');
Run Code Online (Sandbox Code Playgroud)

BatchMode选项将阻止ssh提示输入密码,并且只有在需要密码时才会终止.

  • 使用`warnings`,即使对于这一行代码片段,也会指出此行(以及OP)中可能存在的错误. (4认同)