1

我想编写一个脚本,我需要在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

我该怎么办?

4

2 回答 2

4

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

于 2018-01-16T06:18:53.057 回答
1

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

于 2018-01-16T06:54:09.207 回答