当前位置: 首页 > 知识库问答 >
问题:

与sshpass一起使用时出现错误“sudo:no tty present and no askpass program specified”

傅泉
2023-03-14

我想编写一个脚本,在该脚本中,我需要在不输入密码的情况下从不同的机器获取文件的内容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个答案

田权
2023-03-14

尝试<code>ssh-t</code>,它将为您分配一个tty。

孙凌龙
2023-03-14

正如StackExchange上的这个答案所详述的,远程主机上的< code>/etc/sudoers文件很可能不允许您在没有tty的情况下运行sudo命令。它还提供了许多详细的建议,如果您无法解决这个问题,可以通过这些建议来解决。

 类似资料: