如何使用python脚本通过ssh连接到远程linux服务器,并在python脚本中使用ssh时能够按照用户指定的方式执行命令
我必须监视8到9台服务器。我正在考虑创建一个python脚本,该脚本将创建一个菜单来登录到任何服务器,并且在使用ssh登录到服务器之后,我能够以ssh中指定的“用户”身份在服务器中执行命令。请参阅下面python中的命令。我正在导入“os”以执行bash命令如何使用python脚本通过ssh连接到远程linux服务器,并在python脚本中使用ssh时能够按照用户指定的方式执行命令,python,Python,我必须监视8到9台服务器。我正在考虑创建一个python脚本,该脚本将创建一个菜单来登录到任何服务器,并且在使用ssh登录到服务器之后,我能够以ssh中指定的“用户”身份在服务器中执行命令。请参阅下面python中的命令。我正在导入“os”以执行bash命令 server_login = "ssh {}@{}".format('user_name','10.111.0.10') os.system(server_login) 您可以为此安装para
server_login = "ssh {}@{}".format('user_name','10.111.0.10')
os.system(server_login)
您可以为此安装
paramiko
pip安装paramiko
然后脚本可以是
import paramiko
host = "google.com"
port = 22
username = "user"
password = "Pass"
command = "ls"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port, username, password)
stdin, stdout, stderr = ssh.exec_command(command)
lines = stdout.readlines()
print(lines)
如果paramiko不是你的风格,我可以想出另外两种方法: 通过
os.system
调用为每个命令运行命令:ssh@
。当您使用SSH密码而不是密钥时,这会变得相当麻烦
改为使用子进程
库运行ssh@
,这样您就可以访问stdin和stdout,并在会话中运行多个命令
import subprocess
p = subprocess.Popen(['ssh','root@example.com'], stdout=PIPE, stdin=PIPE)
p.stdin.write("ls\n")
print(p.stdout.read())
然后,不要只是
ssh@
dossh@
。如果您没有指定命令,那么它将进行交互式登录。