使用 python 的 paramiko 库通过 ssh 会话连接远程计算机时,无需密码提示即可执行“su”命令

使用 python 的 paramiko 库通过 ssh 会话连接远程计算机时,无需密码提示即可执行“su”命令

我正在编写一个python脚本来自动化与远程计算机的ssh连接。当使用python的Paramiko库连接到远程计算机时,如果我需要提升权限(特别是切换用户--切换到root或某个普通用户),我将执行命令su <some_normal_user>(切换到普通用户)或su(切换到root-默认情况下),但我面临的问题是它提示我输入密码。

我将用户和密码存储在 yaml 文件中,我希望该命令是一行,这样它就不会提示我手动输入密码。

有什么方法可以解决这个问题吗?

附言:我在网上查了一下,人们说su出于安全原因,他们不建议以单行方式执行命令(因为可以从 bash 历史记录中检索密码)。就我而言,不存在安全问题,因为密码已经在 yaml 文件中了。

答案1

使用sudo而不是su。 该sudo命令更适合这种用途。 您可以在文件中精确配置它,/etc/sudoers以允许特定用户以其他特定用户的身份运行特定命令,无论是否要求输入密码。

相关内容