使用Paramiko库ssh远程主机
Posted kongxx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Paramiko库ssh远程主机相关的知识,希望对你有一定的参考价值。
安装
pip install paramiko
基于用户名密码的连接
import paramiko
ssh = paramiko.SSHClient()
# 允许连接不在 know_hosts 文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(<host>, 22, <username>, <password>)
stdin, stdout, stderr = ssh.exec_command('hostname')
for line in stdout:
print(line.replace('\\n', ''))
for line in stderr:
print(line.replace('\\n', ''))
stdin, stdout, stderr = ssh.exec_command('id')
for line in stdout:
print(line.replace('\\n', ''))
for line in stderr:
print(line.replace('\\n', ''))
ssh.close()
基于公钥密钥的连接
import paramiko
private_key = paramiko.RSAKey.from_private_key_file('/home/kongxx/.ssh/id_rsa')
ssh = paramiko.SSHClient()
# 允许连接不在 know_hosts 文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=<host>, port=22, username=<username>, pkey=private_key)
stdin, stdout, stderr = ssh.exec_command('hostname')
for line in stdout:
print(line.replace('\\n', ''))
for line in stderr:
print(line.replace('\\n', ''))
stdin, stdout, stderr = ssh.exec_command('id')
for line in stdout:
print(line.replace('\\n', ''))
for line in stderr:
print(line.replace('\\n', ''))
ssh.close()
以上是关于使用Paramiko库ssh远程主机的主要内容,如果未能解决你的问题,请参考以下文章
python 在ssh_config上定义的远程主机上使用paramiko运行命令
python 3 paramiko ssh代理在第三台主机上使用远程命令转发跳转主机