使用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远程主机的主要内容,如果未能解决你的问题,请参考以下文章

使用Paramiko库sftp远程主机上传下载文件

使用paramiko执行远程linux主机命令

python 在ssh_config上定义的远程主机上使用paramiko运行命令

python 3 paramiko ssh代理在第三台主机上使用远程命令转发跳转主机

使用 Paramiko 或其他 Python 库通过 SSH 跳转服务器远程登录网络设备

python ssh 连接远程服务器,修改文本内容,调用脚本