SFTP接続 (ダウンロード)

paramikoを使用してファイルをダウンロードするには、SFTP(SSH File Transfer Protocol)を介してリモートサーバーからファイルを取得する必要があります。以下に、Paramikoを使用してファイルをダウンロードする基本的な手順を示します。

  1. paramikoをインストールします。pip install paramikoコマンドを使用して、Paramikoをインストールします。
  2. paramikoを使用してSSHセッションを確立します。以下のコードスニペットは、SSHセッションの確立方法の一例です。
import paramiko

# SSH接続の設定
hostname = "リモートサーバーのホスト名"
port = 22  # SSHポート番号
username = "ユーザー名"
password = "パスワード"

# SSHクライアントの作成
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# SSH接続の確立
client.connect(hostname, port, username, password)
  1. SFTPセッションを開始します。以下のコードスニペットは、SFTPセッションを開始する方法の一例です。
# SFTPセッションの開始
sftp = client.open_sftp()
  1. ファイルをダウンロードします。以下のコードスニペットは、ファイルをダウンロードする方法の一例です。
remote_file_path = "リモートサーバーのファイルパス"
local_file_path = "ローカルマシンに保存するファイルパス"

# ファイルのダウンロード
sftp.get(remote_file_path, local_file_path)
  1. SFTPセッションとSSHセッションをクローズします。
# SFTPセッションの終了
sftp.close()

# SSHセッションの終了
client.close()

これらの手順に従って、Paramikoを使用してリモートサーバーからファイルをダウンロードできます。ただし、接続先のリモートサーバーにはSSHサービスとSFTPサービスが正しく設定されている必要があります。また、セキュリティや認証情報の管理にも十分に注意してください。

import paramiko

hostname = "リモートサーバーのホスト名"
port = 22
username = "ユーザー名"
password = "パスワード"
remote_file_path = "リモートサーバーのファイルパス"
local_file_path = "ローカルマシンに保存するファイルパス"

try:
    with paramiko.SSHClient() as client:
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        client.connect(hostname, port, username, password)
        
        with client.open_sftp() as sftp:
            sftp.get(remote_file_path, local_file_path)
            print("ファイルのダウンロードが成功しました。")
            
except paramiko.AuthenticationException:
    print("認証エラーが発生しました。")
    
except paramiko.SSHException as ssh_exception:
    print(f"SSHエラーが発生しました: {str(ssh_exception)}")
    
except paramiko.SFTPException as sftp_exception:
    print(f"SFTPエラーが発生しました: {str(sftp_exception)}")
    
except Exception as e:
    print(f"予期しないエラーが発生しました: {str(e)}")
タイトルとURLをコピーしました