与 sshpass 一起使用时出错"sudo: no tty present and no askpass program specified"



我想编写一个脚本,我需要从不同的机器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

我该怎么办?

正如 StackExchange 上此答案的详细信息,远程主机上的/etc/sudoers文件可能不允许您在没有 tty 的情况下运行 sudo 命令。它还提供了许多详细的建议,以便在您无法解决问题时解决此问题。

尝试ssh -t它会为你分配一个 tty。

相关内容

最新更新