【Python3】でSSH接続してみる手順を紹介。

Paramikoというモジュールを使っていきます。
SSHv2プロトコルを採用していて、2.7系と3.4以上のバージョンに対応しています。クライアントとサーバーの役割を担うのを補助します。

pip install paramiko

続いて、pythonファイルに下記のような感じで実装します。
セキュリティ的には、認証情報は別ファイルに分けて読み込むのが無難です。

# paramikoのインポート
import paramiko

# 認証情報
IP_ADDRESS = '192.168.0.117'
USER_NAME = 'pi'
PASSWORD = 'raspberry'
# パスワードでなくキーファイルの場合は以下
KEY_FILENAME = '/Users/test/.ssh/aws.pem'

# サーバー上で実行するコマンド
cmd = 'sudo halt' 

# sshクライアントの作成
client = paramiko.SSHClient()
# サーバーのホストキーが見つからなかった場合の設定 自動で追加したい場合はparamiko.AutoAddPolicy()に変更
client.set_missing_host_key_policy(paramiko.WarningPolicy())
# 上記で設定したIPアドレス、ユーザー名、キーファイルを渡す
client.connect(IP_ADDRESS,
               username=USER_NAME,
               password=PASSWORD,
               #key_filename=KEY_FILENAME,
               timeout=3.9)

# コマンドの実行
stdin, stdout, stderr = client.exec_command(cmd)
# コマンド実行結果を変数に格納
cmd_result = ''
for line in stdout:
    cmd_result += line

# 実行結果を出力
print(cmd_result)

# ssh接続断
client.close()
# お作法
del client, stdin, stdout, stderr

以上でTeraterm等を介さずとも、Python上にてSSH接続ができました。

.pyファイルに記述せずに対話型シェルで実行することも可能です。

その他のPython記事については下記をご覧ください。٩(๑❛ᴗ❛๑)

Pythonの新着記事一覧

Yt-dlpにてHTTP Error 403: Forbiddenエラーが出る時の対処法【2023年】
【Selenium】PythonでTimeタグのdatetime属性を取得する方法
Anaconda promptのベースディレクトリを変更する方法(Python)
Anaconda promptのフォントや背景色を自分好みにデザインする方法(Python)
DepthAIにてRuntimeError: Failed to find device after booting, error message: X_LINK_DEVICE_NOT_FOUNDと表示される場合の対処法
まる。

━━━━━━━━━━━━━━━━━
■未経験OK!大学生インターン募集中!
プログラミングやITなど
興味ある方ご連絡ください‎。
(๑ > ﻌ <`)و✧
━━━━━━━━━━━━━━━━━
Python歴5年のフルスタックエンジニア&ヨギー。
大学は心理学専攻、趣味はヘルスケア全般。
最近は自作脳波デバイスの設計とそれを使ったインタラクティブアート生成に勤しみ中。

↓アートとか日常。
Instagram:@malmal0v0

お仕事のご依頼はDM又はメールにて。

まる。をフォローする
タイトルとURLをコピーしました