paramiko

本文介绍如何使用Python Paramiko库通过SSH协议连接远程服务器执行命令,并通过SFTP进行文件传输。提供了基于密码认证和密钥认证两种方式的示例代码。

 

#SSHClient  (用户连接远程服务器执行基本的命令)

基于用户名及密码

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='10.10.1.26', port=22, username='root', password='root1')
stdin, stdout, stderr = ssh.exec_command('df')
result = stdout.read()
print(result.decode())
ssh.close()

#SSHClient封装Transport

import paramiko
transport = paramiko.Transport(('10.10.1.26', 22))
transport.connect(username='root', password='root1')

ssh = paramiko.SSHClient()
ssh._transport = transport
stdin, stdout, stderr = ssh.exec_command('df')
result = stdout.read()
print(result.decode())
ssh.close()

 

基于密钥:

import paramiko
private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='10.10.1.26', port=22, username='root', pkey=private_key)
stdin, stdout, stderr = ssh.exec_command('df')
result = stdout.read()
print(result.decode())
ssh.close()

 

private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
transport = paramiko.Transport(('10.10.1.26', 22))
transport.connect(username='root', pkey=private_key)
ssh = paramiko.SSHClient()
ssh._transport = transport
stdin, stdout, stderr = ssh.exec_command('df')
result = stdout.read()
print(result.decode())
ssh.close()

 

#SFTPClient  (用户连接远程服务执行上传下载文件操作)

import paramiko
transport = paramiko.Transport(('10.10.1.26', 22))
transport.connect(username='root', password='root1')
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put('/opt/packages/tengine-2.2.0.tar.gz', '/tmp/tengine-2.2.0.tar.gz')
sftp.get('/tmp/tengine-2.2.0.tar.gz', '/tmp/tengine-2.2.0.tar.gz')
transport.close()

 

import paramiko
private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
transport = paramiko.Transport(('10.10.1.26', 22))
transport.connect(username='root', pkey=private_key)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put('/opt/packages/tengine-2.2.0.tar.gz', '/tmp/tengine-2.2.0.tar.gz')
sftp.get('/tmp/tengine-2.2.0.tar.gz', '/tmp/tengine-2.2.0.tar.gz')
transport.close()

转载于:https://www.cnblogs.com/helloworld899/p/7987206.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值