用于SSH的库

0 投票
5 回答
1545 浏览
提问于 2025-04-16 07:51

我想找一个可以和SSH一起使用的库,主要要求是能正常使用sudo这个工具。我已经尝试过一些库,但遇到了一些问题:

  • paramiko - 完全不能用sudo,尝试在调用后通过标准输入输入密码,但sudo提示说:“没有tty设备”。
  • pxssh - 嗯,速度非常慢,真的很慢,使用起来很别扭。
  • fabric - 只有在理想情况下才能使用sudo,因为我需要和不同的用户打交道,还要在哪里输入密码呢?

有没有正常的库可以和sudo一起使用的?

5 个回答

0

你可以通过设置'sudo'的'requiretty'选项,让它在没有真实终端的情况下工作。根据'sudoers'手册的说明:

如果这个选项被设置,'sudo'只会在用户登录到一个真实的终端时运行。这意味着像“rsh somehost sudo ls”这样的命令就不能执行,因为'rsh'不会分配一个终端。
由于在没有终端的情况下无法关闭输入回显,一些地方可能希望设置这个选项,以防止用户输入的密码被看到。默认情况下,这个选项是关闭的。

我在使用paramiko时,这个设置对我有效。根据你要做的事情,你也可以看看类似于pexpect的工具。

0

我觉得你是在找fabric这个工具。

0

与其强行让 sudo 在没有终端的情况下工作,不如让 Paramiko 为你分配一个终端吧?

Paramiko 和伪终端分配

撰写回答