teratermを利用して、テストマシンへのSSH接続を実行しています。teratermのマクロを作成して可能な限り自動化していますが、Pythonでもできそうなのでやってみます。
PythonでSSH接続するために、まずはparamikoをインストールします。
公式サイトはこちら。
Welcome to Paramiko! — Paramiko documentation
1. インストール
いつも通り、pipコマンドで。
$ pip install paramiko
2. SSH接続のサンプルコード
ホスト'example.com'にプライベートキーを使用して接続して、コマンド"pwd"を実行するサンプルです。
import paramiko import time hostname = 'example.com' user_name = 'root' private_key = 'private_key.txt' client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname=ip_addr, port=22, username=user_name, key_filename=private_key) channel = client.invoke_shell() while not channel.recv_ready(): time.sleep(1) received = channel.recv(2048) channel.send('pwd\n') while not channel.recv_ready(): time.sleep(1) received += channel.recv(2048) print(received) channel.close() client.close()
以下のような結果が出力されます。
# pwd
/home/root
#
今回はエラー処理が実装されていないですが、この実装のままだとサーバーからの応答がないケースでは待ちを抜けないので注意して下さい。