ホームページ バックエンド開発 Python チュートリアル Python サーバー プログラミング: Paramiko を使用して SSH リモート操作を実装する

Python サーバー プログラミング: Paramiko を使用して SSH リモート操作を実装する

Jun 18, 2023 pm 01:10 PM
python サーバ ssh

クラウド コンピューティングとモノのインターネットの発展に伴い、サーバーのリモート操作がますます重要になっています。 Python では、Paramiko モジュールを使用して SSH リモート操作を簡単に実装できます。この記事では、Paramiko の基本的な使い方と、Python で Paramiko を使用してサーバーをリモート管理する方法を紹介します。

Paramiko とは

Paramiko は、SSH クライアントと SSH サーバーの接続と制御に使用できる SSHv1 および SSHv2 用の Python モジュールです。 Paramiko モジュールを使用すると、リモートでログインしてサーバーを操作するための Python スクリプトを簡単に作成できます。

Paramiko の基本的な使用法

Paramiko モジュールの基本的な使用法は非常に簡単で、Paramiko の SSHClient クラスを使用して SSH クライアント オブジェクトを作成し、SSH サーバーに接続できます。基本的な例を次に示します。

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname', username='username', password='password')
ログイン後にコピー

この例では、最初に SSHClient オブジェクトを作成し、set_missing_host_key_policy メソッドを使用して、不足している SSH キーを自動的に追加できるようにします。次に、connect メソッドを使用して SSH サーバーに接続し、ホスト名、ユーザー名、パスワードをパラメーターとして渡します。

これで、SSH サーバーへの接続に成功しました。次に、SSHClient オブジェクトを使用して、サーバーのオペレーティング システム情報の取得などのリモート コマンドを実行できます。

stdin, stdout, stderr = ssh.exec_command('uname -a')
print(stdout.read())
ログイン後にコピー

この例では、exec_command メソッドを使用して uname -a コマンドを実行し、出力を取得します。また、stdout.read() を使用して出力を読み取り、出力しました。

リモート コマンドの実行に加えて、SSHClient オブジェクトを使用してファイルをアップロードおよびダウンロードすることもできます。ファイルをアップロードする例を次に示します。

sftp = ssh.open_sftp()
local_file = '/path/to/local/file.txt'
remote_file = '/path/to/remote/file.txt'
sftp.put(local_file, remote_file)
sftp.close()
ログイン後にコピー

この例では、まず open_sftp メソッドを使用して SFTP セッションを開き、put メソッドを使用してローカル ファイルをリモート サーバーにアップロードします。また、sftp.close() メソッドを使用して SFTP セッションを閉じました。

Paramikoを使ってSSHリモート操作を実現する

Paramikoの基本的な使い方がわかったので、次はParamikoを使ってサーバーをリモート操作してみます。次の機能を実装します。

  • SSH サーバーに接続し、いくつかの基本的なコマンドを実行します
  • フォルダーの作成と削除
  • ファイルのアップロードとダウンロード

まず、Paramiko モジュールをインストールする必要があります:

pip install paramiko
ログイン後にコピー

次に、Python スクリプトを作成します。まず、必要なモジュールをインポートします:

import os
import paramiko
ログイン後にコピー

次に、SSH サーバーのホスト名、ユーザー名、パスワードを含むいくつかの定数を定義します:

HOST = 'hostname'
USER = 'username'
PASSWORD = 'password'
ログイン後にコピー

次に、paramiko.SSHClient を使用できます。 SSH サーバーに接続するクラス:

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(HOST, username=USER, password=PASSWORD)
ログイン後にコピー

この例では、set_missing_host_key_policy() メソッドを使用して、不足している SSH キーを自動的に追加します。

次に、さまざまなタスクを実行するためのいくつかの関数を定義します。 1 つ目はコマンドを実行する関数です。

def run_command(command):
    stdin, stdout, stderr = ssh.exec_command(command)
    output = stdout.read().decode('utf-8')
    return output
ログイン後にコピー

この関数はコマンド パラメーターを受け取り、SSHClient オブジェクトの exec_command メソッドを使用してコマンドを実行し、出力を文字列として返します。

次に、ディレクトリを作成する関数を定義します。

def create_directory(path):
    sftp = ssh.open_sftp()
    try:
        sftp.mkdir(path)
    except IOError:
        pass
    sftp.close()
ログイン後にコピー

この関数は、パス パラメーターを受け取り、SFTP セッションを使用してディレクトリを作成します。

ファイルをアップロードおよびダウンロードする関数も定義します:

def upload_file(local_path, remote_path):
    sftp = ssh.open_sftp()
    sftp.put(local_path, remote_path)
    sftp.close()


def download_file(remote_path, local_path):
    sftp = ssh.open_sftp()
    sftp.get(remote_path, local_path)
    sftp.close()
ログイン後にコピー

これらの関数は、それぞれローカル パスとリモート パス (アップロード用)、またはリモート パスとローカル パス (ダウンロード用) を受け取ります)、 SFTP セッションを使用して、対応するファイルをアップロードまたはダウンロードします。

最後に、すべてのタスクを実行する main 関数を定義します:

def main():
    # Run a command
    output = run_command('ls -la')
    print(output)

    # Create a directory
    create_directory('/home/username/new_folder')

    # Upload a file
    upload_file('/path/to/local/file.txt', '/home/username/new_folder/file.txt')

    # Download a file
    download_file('/home/username/new_folder/file.txt', '/path/to/local/file.txt')

    # Close the SSH connection
    ssh.close()
ログイン後にコピー

この main 関数は次のタスクを実行します:

  • ls -la コマンドを実行し、 print 出力
  • 新しいディレクトリを作成しました
  • ファイルをアップロードしました
  • 同じファイルをダウンロードしました
  • SSH 接続を閉じました

Nowこのスクリプトを実行して出力を表示できます:

python ssh.py
ログイン後にコピー

結果は次のようになります:

total 20
drwxr-xr-x 1 username username 4096 Aug 15 02:24 .
drwxr-xr-x 1 username username 4096 Aug 15 02:20 ..
-rw------- 1 username username 1675 Aug 15 02:21 .bash_history
-rw-r--r-- 1 username username  220 Aug 15 02:20 .bash_logout
-rw-r--r-- 1 username username 3771 Aug 15 02:20 .bashrc
drwx------ 1 username username 4096 Aug 15 02:20 .cache
drwxr-xr-x 1 username username 4096 Aug 15 02:20 .config
drwx------ 1 username username 4096 Aug 15 02:20 .gnupg
-rw-r--r-- 1 username username  807 Aug 15 02:20 .profile
-rw-r--r-- 1 username username    0 Aug 15 02:21 test.txt
ログイン後にコピー

Summary

SSH リモートは、Paramiko を使用して簡単に実現できます。モジュールが動作します。この記事では、Paramiko の基本的な使用法を紹介し、Python で Paramiko を使用してサーバーをリモート管理する方法を示しました。クラウド コンピューティングの分野でも、モノのインターネットの分野でも、Paramiko はサーバー管理の自動化に役立つ非常に便利なツールです。

以上がPython サーバー プログラミング: Paramiko を使用して SSH リモート操作を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

CentosのPytorchのGPUサポートはどのようにサポートされていますか CentosのPytorchのGPUサポートはどのようにサポートされていますか Apr 14, 2025 pm 06:48 PM

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

ミニオペンCentosの互換性 ミニオペンCentosの互換性 Apr 14, 2025 pm 05:45 PM

MINIOオブジェクトストレージ:CENTOSシステムの下での高性能展開Minioは、Amazons3と互換性のあるGO言語に基づいて開発された高性能の分散オブジェクトストレージシステムです。 Java、Python、JavaScript、Goなど、さまざまなクライアント言語をサポートしています。この記事では、CentosシステムへのMinioのインストールと互換性を簡単に紹介します。 Centosバージョンの互換性Minioは、Centos7.9を含むがこれらに限定されない複数のCentosバージョンで検証されています。

CentosでPytorchの分散トレーニングを操作する方法 CentosでPytorchの分散トレーニングを操作する方法 Apr 14, 2025 pm 06:36 PM

Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所

CentosでPytorchバージョンを選択する方法 CentosでPytorchバージョンを選択する方法 Apr 14, 2025 pm 06:51 PM

PytorchをCentosシステムにインストールする場合、適切なバージョンを慎重に選択し、次の重要な要因を検討する必要があります。1。システム環境互換性:オペレーティングシステム:Centos7以上を使用することをお勧めします。 Cuda and Cudnn:PytorchバージョンとCudaバージョンは密接に関連しています。たとえば、pytorch1.9.0にはcuda11.1が必要ですが、pytorch2.0.1にはcuda11.3が必要です。 CUDNNバージョンは、CUDAバージョンとも一致する必要があります。 Pytorchバージョンを選択する前に、互換性のあるCUDAおよびCUDNNバージョンがインストールされていることを確認してください。 Pythonバージョン:Pytorch公式支店

NginxをCentosにインストールする方法 NginxをCentosにインストールする方法 Apr 14, 2025 pm 08:06 PM

NGINXのインストールをインストールするには、次の手順に従う必要があります。開発ツール、PCRE-Devel、OpenSSL-Develなどの依存関係のインストール。 nginxソースコードパッケージをダウンロードし、それを解凍してコンパイルしてインストールし、/usr/local/nginxとしてインストールパスを指定します。 nginxユーザーとユーザーグループを作成し、アクセス許可を設定します。構成ファイルnginx.confを変更し、リスニングポートとドメイン名/IPアドレスを構成します。 nginxサービスを開始します。依存関係の問題、ポート競合、構成ファイルエラーなど、一般的なエラーに注意する必要があります。パフォーマンスの最適化は、キャッシュをオンにしたり、ワーカープロセスの数を調整するなど、特定の状況に応じて調整する必要があります。

See all articles