我想对数量在250台以上的多台服务器进行一些审核,并且每周需要进行一次审核,因此我需要投入大量的人工。与其手动进行操作,不如使用paramiko模块将其与Python自动化。
在我的情况下,首先我必须登录到主机,然后必须切换帐户(sudo su - useraccount
),它将提示输入密码。
成功登录后,我必须执行一些与应用程序相关的命令。
我可以登录到主机,但不能切换到用户帐户。
import paramiko
from time import sleep
command = 'pwd'
remoteHost = "IP Address"
sshPort = 22
sshUser = "basic username"
sshPass = "my password"
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(remoteHost, sshPort, sshUser, sshPass)
stdin, stdout, stderr = ssh.exec_command("sudo su - useraccount", get_pty=True)
stdin.write('Password\n')
stdin.flush()
stdin, stdout, stderr=ssh.exec_command(command)
for line in stderr:
print(line)
ssh.close()
它应该打印帐户“ useraccount”的主目录路径。