gpt4 book ai didi

python - 尝试编辑文件 : "sudo: no tty present and no askpass program specified" 时出现 Paramiko 错误

转载 作者:太空宇宙 更新时间:2023-11-04 09:28:58 30 4
gpt4 key购买 nike

我正在使用 Paramiko 进行 SSH 和编辑配置文件。该文件本身需要 sudo 权限才能编辑。到目前为止,这还不是问题,因为我刚刚完成了 echo <sudopw> | sudo <command>对于我脚本中的其他 sudo 命令。

但是,当我尝试使用 sed 编辑此文件时,没有任何反应。 stderr产生:sudo: no tty present and no askpass program specified

这是我的代码:

stdin, stdout, stderr = client.exec_command
('echo <sudopassword> | sudo sed -i -e \"\\$aAllowUsers\" /etc/ssh/sshd_config)')

我尝试过使用 invoke_shell 的解决方案但似乎没有任何效果。任何编辑此文件的解决方案都会有所帮助。

编辑:这已经解决了!不要使用 get_pty .在“sudo”之后使用 sudo 的 -S 选项。

最佳答案

如果您阅读错误信息

sudo: no tty present and no askpass program specified

然后您可以轻松找到解决方案:将-t 选项添加到您的ssh命令:

-t
Force pseudo-terminal allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.

之前已经讨论过了:

关于 Paramiko,有一些相关的问题,有几种不同的方法:

  • 使用get_pty ssh Channel 获取伪终端的方法(类似于告诉 ssh 这样做)
  • 使用 sudo-S 选项,并在标准输出上发送密码。

有关讨论,请在此处查看建议的答案:

关于python - 尝试编辑文件 : "sudo: no tty present and no askpass program specified" 时出现 Paramiko 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33579184/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com