python远程登录Linux虚拟机执行一条命令

1.Paramiko模块
Paramiko模块是一个用于SSHv2协议的Python实现,它允许你通过SSH连接到远程服务器并执行命令、上传/下载文件等操作。这个库是用Python编写的,并遵循SSH2协议,以加密和认证的方式实现远程服务器的连接。由于Python的跨平台特性,Paramiko可以在所有Python支持的平台(如Linux, Solaris, BSD, MacOS X, Windows等)上使用。

2.核心组件
Paramiko包含两个核心组件:SSHClient和SFTPClient。SSHClient的作用类似于Linux的ssh命令,而SFTPClient则用于在远程服务器上安全地传输文件。

3.基本用法
(1)连接到远程服务器:你可以使用SSHClient对象的connect()方法连接到远程服务器。你需要提供远程服务器的IP地址、端口号、用户名和密码。

(2)执行命令:一旦你连接到远程服务器,你就可以使用exec_command()方法执行命令。这个方法将返回一个包含三个元素的元组,分别表示标准输出、标准错误和命令的退出状态。

(3)传输文件:要使用Paramiko传输文件,你需要创建一个SFTPClient对象,然后使用它的put()和get()方法。put()方法用于将本地文件上传到远程服务器,而get()方法则用于从远程服务器下载文件到本地。

实现代码:

import paramiko

# 设置SSH连接参数
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 自动添加主机名和主机密钥到本地HostKeys对象,并保存

# 虚拟机IP地址、用户名和密码
hostname = '192.168.81.128'
port = 22  # 默认的SSH端口
username = 'root'
password = '123456'

# 连接到虚拟机
ssh.connect(hostname=hostname, port=port, username=username, password=password)

# 创建一个新的SSH执行客户端来运行命令
stdin, stdout, stderr = ssh.exec_command('touch /666.txt')

# 检查命令执行是否有错误
if stderr.read().decode('utf-8'):
    print(f"Error occurred: {stderr.read().decode('utf-8')}")
else:
    print("File created successfully.")

# 关闭连接
ssh.close()

 效果展示:
 

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值