我正在编写一个脚本来自动化 Python 中的一些命令行命令。目前,我正在做这样的电话:
cmd = "some unix command" retcode = subprocess.call(cmd,shell=True)
但是,我需要在远程机器上运行一些命令。手动,我会使用登录ssh然后运行命令。我将如何在 Python 中自动执行此操作?我需要使用(已知)密码登录到远程机器,所以我不能只使用cmd = ssh user@remotehost,我想知道是否有我应该使用的模块?
ssh
cmd = ssh user@remotehost
我会把你推荐给paramiko
看到这个问题
ssh = paramiko.SSHClient() ssh.connect(server, username=username, password=password) ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd_to_execute)
如果您使用 ssh 密钥,请执行以下操作:
k = paramiko.RSAKey.from_private_key_file(keyfilename) # OR k = paramiko.DSSKey.from_private_key_file(keyfilename) ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=host, username=user, pkey=k)