あらすじ
-
ssh
で遠隔の端末にコマンドを投げたい事がある - 対象台数が1台2台の場合もあるが、時には10台〜20台が対象である場合しばしばもある
- 手動だとやってられないので一撃でコマンドを投げたい事がある
ssh
について
https://ja.wikipedia.org/wiki/Secure_Shell
Secure Shell(セキュア シェル、SSH)は、暗号や認証技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証を含むすべてのネットワーク上の通信が暗号化される。
パスワード(user/password
を使う場合)
※どちらかというと後述の公開鍵認証を利用した通信の方が良さそうだが備忘メモ的に記載する
USER="xxx" # アクセス先のユーザ名
IPADDR="xxx.xxx.xxx.xxx" # アクセス先のIPアドレス
COMMAND="ls && pwd" # 実行したいコマンド(先は一例)
# コマンドを投げる
# `key_password`ファイルにpasswordを記載しておく
sshpass -v -f ./key_password ssh ${USER}@${IPADDR} bash -c "${COMMAND}"
公開鍵認証を利用した通信をする場合
事前に公開鍵認証を利用するための設定をしておく
以下のクライアントPCからリモートサーバーへ公開鍵を転送して登録する
の部分を設定しておく
# 事前にSSH公開鍵通信のための設定をしておく
USER="xxx" # アクセス先のユーザ名
IPADDR="xxx.xxx.xxx.xxx" # アクセス先のIPアドレス
COMMAND="ls && pwd" # 実行したいコマンド(先は一例)
KEY_FILE_PATH="~/.ssh/xxx" # 鍵ファイルのパス
# コマンドを投げる
ssh -i ${KEY_FILE_PATH} -p ${PORTNO} ${USER}@${IPADDR} bash -c "${COMMAND}"
参考