まず、paramikoとは何か
paramikoが何であるかを理解するために、我々は最初のsshプロトコルを理解する必要があります。
第二に、sshプロトコルは何ですか
sshはセキュアシェル(翻訳:セキュアシェル)の略で、知ることができます文字通りの意味とセキュリティ関連のプロトコルに従って、公式の引数は、IETFに基づいてアプリケーション層のネットワークプロトコルでは、セキュリティです。 プランへのリモートログインセッションのための特別なプロトコルを確保するために。データのSSH伝送が圧縮されるので、それは伝送速度を高速化し、現在のSSHプロトコルは、標準構成のLinuxシステムとなっています。(SSHプロトコルの特定のセキュリティメカニズムと小さなパートナーの原則の実装は、自己Baiduのを喜ば)
三、paramiko導入
(冷たいコマンドウィンドウに直面しているではない、快適である)小さなパートナーの第二部では、SSHが何であるかを理解しているはず読み取り、paramikoのpythonのライブラリであり、我々は直接リモートサーバーを動作させるためにPythonコードを使用することができますparamiko使用した後、その直接sshコマンド操作を使用しないでください!!!
四、導入paramikoコアコンポーネント
1. SSHClient:主にリモートコマンド実行のために使用さ
2. SFTPClient:リモートファイル操作用のLinux sftpコマンドと同様の役割、ファイルのアップロード、ダウンロード、ファイルのパーミッションを変更
五、SSHClient導入
1.一般的に使用される方法は以下の通りである:接続():主に、リモート・サーバへの認証および接続を実現するために使用します
次のように必要なパラメータは以下のとおりです。
デフ接続( 自己、 ホスト名、 ポート = SSH_PORT、 ユーザ名 = なし、 パスワード = なし、 PKEY = なし、 key_filename = なし、 タイムアウト = なし、 allow_agent = 真、 look_for_keys = 真、 湿布 = Falseの、 靴下 = なし、 gss_auth = Falseの、 gss_kex = Falseの、 gss_deleg_creds = 真、 gss_host = なし、 banner_timeout = なし、 auth_timeout = なし、 gss_trust_dns = 真、 パスフレーズ = なし、 disabled_algorithms = なし、 ):
ホスト名が接続するホストを指定するパラメータを入力する必要があるソース種からわかるように、ポートが接続するポートで、通常はデフォルトは22で、usernameはユーザー名、パスワードは、パスワードで、PKEYは、プライベート移動するための方法であります認証、key_filename秘密鍵ファイルが指定されたアドレスです。主なものは、これらのパラメータです。
2. set_missing_host_key_policy() :リモートサーバーがknow_hostsファイルに記録されていないときに設定対処戦略。3つの戦略があります。
AutoAddPolicy 自动添加主机名及主机密钥到本地HostKeys对象,不依赖load_system_host_key的配置。即新建立ssh连接时不需要再输入yes或no进行确认
WarningPolicy 用于记录一个未知的主机密钥的python警告。并接受,功能上和AutoAddPolicy类似,但是会提示是新连接
RejectPolicy 自动拒绝未知的主机名和密钥,依赖load_system_host_key的配置。此为默认选项
インポートparamiko
最初のステップは、SSHClientをインスタンス化される#は、オブジェクトを取得します クライアント = paramiko.SSHClient()
#は、自動追加ポリシーを設定し、単語を追加していない、そうでない場合はローカルのhostsファイルレコードのknow_hostsに接続できないん client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#は、リモートホストへの接続します client.connect(ホスト名 = 「あなたがIPを接続したい」、ポート= 22、ユーザ名= 「あなたのユーザ名」、パスワードは= 「ユーザパスワード」)
#は、正しい出力標準出力標準エラー出力エラーにコマンドチャネルを確立し、実行します出力 標準入力、標準出力、標準エラー出力= client.exec_command(' DF -h ')
)(client.close
2.キー接続
#キーの場所を取得
プライベートparamiko.RSAKey.from_private_key_fileを=(' /Users/ch/.ssh/id_rsa ' ) #インスタンス化SSHClient クライアント= paramiko.SSHClient() #、ポリシーを自動追加のホスト名とキー情報サーバを節約するために、追加されていない場合、それはもはやホストローカルknow_hostsファイルレコードは接続できません client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #SSHサーバ、認証用のユーザー名とパスワード client.connect(ホスト名= 「10.0.0.1 」、ポート= 22であり、ユーザ名= 「ルート」、PKEY =プライベート)
の7、SFTPClient一般的な方法をご紹介
from_transport(
cls
,t) 创建一个已连通的SFTP客户端通道
put(localpath, remotepath, callback
=
None
, confirm
=
True
) 将本地文件上传到服务器 参数confirm:是否调用stat()方法检查文件状态,返回ls
-
l的结果
get(remotepath, localpath, callback
=
None
) 从服务器下载文件到本地
mkdir() 在服务器上创建目录
remove() 在服务器上删除目录
rename() 在服务器上重命名目录
stat() 查看服务器文件状态
listdir() 列出服务器目录下的文件
輸入paramiko #ゲット交通例 トランparamiko.Transport =((' 10.0.0.3 '、22があります)) #SSHサーバ、パスワードの使用 tran.connect(ユーザ名= 「ルート」、パスワードを= 「123456 」) #または #のコンフィギュレーションファイルの場所、秘密鍵 プライベートparamiko.RSAKey.from_private_key_file =(" /Users/root/.ssh / id_rsaと" ) #SSHサーバ、指定するのに使用される秘密鍵PKEY tran.connect(ユーザ名= " ルート"、PKEY = プライベート) #ゲットSFTP例 SFTP = paramiko.SFTPClient.from_transport(トラン) #設定のアップロードにローカル/リモートのファイルパス localPathに= 「/Users/root/Downloads/1.txt 」 remotePathは = 「/tmp/1.txt 」 #は、アップロードのアクションを実行 sftp.put(localPathに、remotePathは) #は、ダウンロードのアクションを実行 sftp.get(remotePathは、localPathにします) tran.close()
参考記事:https://www.cnblogs.com/xiao-apple36/p/9144092.html#_label2_2
パイソンについてのQQのグループディスカッションを入力する歓迎:515 458 373