当前位置: 移动技术网 > IT编程>脚本编程>Python > Python paramiko模块使用解析(实现ssh)

Python paramiko模块使用解析(实现ssh)

2019年09月09日  | 移动技术网IT编程  | 我要评论

刘纾妤,聂凌峰,我们结婚了20110730

开发堡垒机之前,先来学习python的paramiko模块,该模块基于ssh用于连接远程服务器并执行相关操作

安装paramiko模块

pip3 install paramiko

基于用户密码方式

import paramiko

# 创建ssh对象
ssh = paramiko.sshclient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())
# 连接服务器
ssh.connect(hostname="10.0.0.200", port=22, username='root', password='1')

# 执行命令
# stdin:标准输入(就是你输入的命令);stdout:标准输出(就是命令执行结果);stderr:标准错误(命令执行过程中如果出错了就把错误打到这里),stdout和stderr仅会输出一个
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = (stdout.read().decode('utf-8'))  # 这个有问题,如果执行的命令是错误的,会不显示错误,可以修改一下,先判断stdout有没有值,如果输出没有,就显示错误
print(result)
# 关闭连接
ssh.close()

基于公钥密钥连接

import paramiko

# 指定私钥路径
private_key = paramiko.rsakey.from_private_key_file('/root/.ssh/id_rsa')

# 创建ssh对象
ssh = paramiko.sshclient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())
# 连接服务器
ssh.connect(hostname='10.0.0.171', port=22, username='root', pkey=private_key)

# 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read()
print(result.decode())
# 关闭连接
ssh.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网