😊

PythonでParamiko使ってssh接続を行いscpでファイル転送したいときのコード例

2022/02/12に公開

Pythonでscp使って、vpsからファイルを取ってきたかったので、Paramiko使ってコード書きました。
ssh_configを読んできて接続してます。

import os,sys,subprocess,glob
import paramiko
import scp

hostname =''
to_folder = ''
from_folder = ''

## load config
config_file = os.path.expanduser('~/.ssh/config')
ssh_config = paramiko.SSHConfig()
ssh_config.parse(open(config_file, 'r'))
config = ssh_config.lookup(hostname)

## scp get
with paramiko.SSHClient() as ssh:
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    ssh.load_system_host_keys()
    ssh.connect(
        config['hostname'],
        username=config['user'],
        key_filename=config['identityfile'],
        port=config['port']
    )

    with scp.SCPClient(ssh.get_transport()) as scp:
        scp.get(
            remote_path=from_folder,
            local_path=to_folder,
            recursive=True # ディレクトリごとのときは、ここがTrue
        )

Discussion