ホームページ  >  記事  >  バックエンド開発  >  Python学習日記(50) - paramiko

Python学習日記(50) - paramiko

PHP中文网
PHP中文网オリジナル
2017-06-23 11:55:262773ブラウズ

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 の場合: 鍵を生成します

Python学習日記(50) - paramiko

ログインするためにサーバーに転送します:

Python学習日記(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)

以上がPython学習日記(50) - paramikoの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。