错误输出而不是用SSH要求密码

时间:2014-04-11 12:02:58

标签: php linux bash ssh

我正在编写一个使用rsync的脚本,如果SSH密钥有密码,我希望它出错,告诉用户使用非密码保护的密钥(因为脚本在后台运行) )。

但是,我为SSH尝试的标志都没有这样做,而且我在手册页中找不到任何内容。

禁用SSH密码短语提示的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用BatchMode选项执行此操作。这将导致SSH避免任何可能导致脚本挂起的内容,例如密码/密码短语提示。

此示例直接取自http://www.unix.com/programming/184775-test-ssh-but-do-not-return-password-prompt.html

处提出的类似问题
if ssh -o BatchMode=yes "$hostname" true 2>/dev/null; then
    echo "it works"
else
    echo "it's broken."
if

这是rsync的一个例子:

rsync -e "ssh -o BatchMode=yes -i /var/www/.ssh/id_rsa" /path/to/test/file.txt remotehost:/path/to/test/file.txt
相关问题