使用sshpass时出错“sudo:no tty present并且没有指定askpass程序”

时间:2018-01-16 06:00:38

标签: shell sudo sshpass

我想编写一个脚本,我需要在不输入密码的情况下从不同的机器192.168.0.2获取文件的内容,所以我使用sshpass使用以下命令:

sshpass -p "password" ssh -o StrictHostKeyChecking=no user@192.168.0.2 " ls /root/path/of/file"

输出:

ls: cannot access '/root/path/of/file': Permission denied

我知道了,因为我没有以root用户身份登录。所以我试过了:

sshpass -p "password" ssh -o StrictHostKeyChecking=no user@192.168.0.2 "sudo ls /root/path/of/file"

输出:

sudo: no tty present and no askpass program specified

我该怎么办?

2 个答案:

答案 0 :(得分:2)

作为StackExchange上此answer的详细信息,远程主机上的/etc/sudoers文件可能会禁止您在没有tty的情况下运行sudo命令。如果您无法解决问题,它还有一些解决问题的详细建议。

答案 1 :(得分:1)

尝试为您分配tty的ssh -t