paramiko介绍及使用说明

paramiko介绍及使用说明

1. 什么是Paramiko?

Paramiko是一个用于在Python中进行SSH2协议网络连接的模块。它提供了客户端和服务器功能,允许使用安全的SSH协议进行远程服务器的命令执行、文件传输和密钥管理等操作。Paramiko广泛应用于系统管理、自动化任务和远程服务器管理等场景。

2. 官方文档

Paramiko的官方文档提供了详细的安装、配置和使用指南。你可以在以下链接找到官方文档:
Paramiko 官方文档

3. 安装

你可以使用pip来安装Paramiko模块:

pip install paramiko

4. 基本使用

下面是一些常见的Paramiko使用示例,包括如何进行SSH连接、执行远程命令和文件传输等。

4.1 SSH连接和执行远程命令

import paramiko

# 创建SSH客户端
ssh = paramiko.SSHClient()

# 自动添加主机到known_hosts文件中
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接远程服务器
ssh.connect(hostname='your_server_ip', port=22, username='your_username', password='your_password')

# 执行远程命令
stdin, stdout, stderr = ssh.exec_command('ls -l')
print(stdout.read().decode())

# 关闭连接
ssh.close()

4.2 文件传输(SFTP)

import paramiko

# 创建SSH客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='your_server_ip', port=22, username='your_username', password='your_password')

# 创建SFTP客户端
sftp = ssh.open_sftp()

# 上传文件
sftp.put('local_file.txt', 'remote_file.txt')

# 下载文件
sftp.get('remote_file.txt', 'local_file.txt')

# 关闭SFTP和SSH连接
sftp.close()
ssh.close()

4.3 使用私钥进行认证

import paramiko

# 加载私钥
private_key = paramiko.RSAKey.from_private_key_file('path_to_your_private_key')

# 创建SSH客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 使用私钥连接远程服务器
ssh.connect(hostname='your_server_ip', port=22, username='your_username', pkey=private_key)

# 执行远程命令
stdin, stdout, stderr = ssh.exec_command('ls -l')
print(stdout.read().decode())

# 关闭连接
ssh.close()

4.4 创建交互式shell

使用Paramiko创建交互式shell可以让你在远程服务器上运行多个命令并读取它们的输出。

# 创建交互式 shell 会话,使用 Paramiko 的 invoke_shell() 方法。
import time
import paramiko

commands = ["whoami", "uptime", "ls -al /tmp"]

def send_command(channel, command):
    channel.send(command + '\n')

def receive_output(channel):
    output=''
    while channel.recv_ready():
        output += channel.recv(1024).decode()
    return output

try:
    # 创建ssh客户端
    ssh = paramiko.SSHClient()
    # 自动添加远程主机的SSH密钥
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
    # 连接到远程主机
    ssh.connect(hostname='your_server_ip', port=22, username='your_username', password='your_password')
    # invoke_shell() 方法创建交互式shell会话
    channel = ssh.invoke_shell()
    for command in commands:
        send_command(channel, command)
        time.sleep(1)
        output = receive_output(channel)
        print(output)
except Exception as err:
    print(err)

ssh.close()

注意事项

  • 如果遇到连接问题,检查你的SSH连接参数(hostname、port、username、password)是否正确。

  • 确保你有足够的权限在远程服务器上执行这些命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lldhsds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值