>  기사  >  백엔드 개발  >  파이썬 학습 일기 (50)--paramiko

파이썬 학습 일기 (50)--paramiko

PHP中文网
PHP中文网원래의
2017-06-23 11:55:262789검색

python通过paramiko实现,ssh功能
import paramiko
ssh =paramiko.SSHClient()#创建一个SSH连接对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#允许连接不在KNOV_HOSTs文件中的主机 自动添加
ssh.connect(hostname='192.168.11.51',port=22,username='yjj',password='yjj')#连接,主机 端口  用户名 密码
stdin,stdout,stderr=ssh.exec_command('df')#.exec_command 为执行命令,返回结果  ,标准输入,标准输出,标准错误,错误与输出只会返回其一
result=stdout.read()#获取结果
#result2=stdin.read()#获取结果
#result3=stderr.read()#获取结果
#print(result,result2,result3)
result=result.decode()
print(result)
ssh.close()#关闭连接

ftp 기능

import paramiko
#创建一个传输通道对象
transport=paramiko.Transport(('192.168.11.50',22))#传输模块  Transport  服务器地址 端口
transport.connect(username='root',password='yjj')#用户名,,密码
sftp=paramiko.SFTPClient.from_transport(transport)#调用传输方法
sftp.put('test2','/home/yjj/test2')#上传文件 ,本地路径文件  ,服务器的路径文件
sftp.get('/home/yjj/test1','test1')#下载文件 ,服务器的路径文件 ,本地路径文件

보안상의 이유로 일반 텍스트 비밀번호를 사용하지 않으며 RSA 비대칭 키를 사용하여 자동으로 로그인합니다

Linux에서: 키 생성

파이썬 학습 일기 (50)--paramiko

로그인을 위해 서버로 전송:

파이썬 학습 일기 (50)--paramiko

전송이 성공하면 서버에서 해당 사용자로 성공적으로 로그인할 수 있습니다

windows에서 linux에 로그인하는 경우

개인키를 windows에 복사하면 됩니다

개인키를 지정하세요 paramiko.RSAKey를 통해 액세스

ssh 기능:

import paramiko
priv_key=paramiko.RSAKey.from_private_key_file('id_rsa')#指定私钥文件
ssh=paramiko.SSHClient()#生成ssh对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#允许连接不在KNOV_HOSTs文件中的主机 自动添加
ssh.connect(hostname='192.168.11.50',port=22,username='root',pkey=priv_key)#连接,主机 端口  用户名 私钥
stdin,stdout,stderr=ssh.exec_command('df')#.exec_command 为执行命令,返回结果  ,标准输入,标准输出,标准错误,错误与输出只会返回其一
result=stdout.read()#获取结果
result=result.decode()
print(result)
ssh.close()#关闭连接

ftp 기능:

import paramiko
priv_key=paramiko.RSAKey.from_private_key_file('id_rsa')#指定私钥文件
#创建一个传输通道对象
transport=paramiko.Transport(('192.168.11.50',22))#传输模块  Transport  服务器地址 端口
transport.connect(username='root',pkey=priv_key)#用户名,,私钥
sftp=paramiko.SFTPClient.from_transport(transport)#调用传输方法
sftp.put('test2','/home/yjj/test2-2')#上传文件 ,本地路径文件  ,服务器的路径文件
sftp.get('/home/yjj/test1','test1-2')#下载文件 ,服务器的路径文件 ,本地路径文件
with open('test1-2','r',encoding='utf-8') as f:
    s=f.readlines()
    print(s)

위 내용은 파이썬 학습 일기 (50)--paramiko의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.