2022.03.19  

【Linux】踏み台サーバーを経由してプライベートサーバーでコマンドを実行する

Linux    

ローカル端末からsshコマンドを実行して、踏み台サーバー → プライベートサーバーに接続。その後コマンドを実行する方法について記載します。

結論としては下記コマンドを実行すれば良いです。
こちらのコマンドでは、プライベートサーバーでls -lを実行しています。

ssh -o "ConnectTimeout 5" -oProxyCommand=\
'ssh -W %h:%p 踏み台サーバーのユーザー名@踏み台サーバーのパブリックIP -i ~/.ssh/bastion.pem' \
-i ~/.ssh/private.pem プライベートサーバーのユーザー名@プライベートサーバーのプライベートIP \
"ls -l"

解説

秘密鍵、bastion.pemprivate.pemはローカル環境にあるものを利用します。

-o "ConnectTimeout 5"オプションは接続試行時のタイムアウト時間を設定しています。設定しないとサーバーに接続できない際に処理が終わりません。(環境による?)
今回は5秒としています。

-oオプションのProxyCommand='踏み台サーバーの接続情報'を使用すると自分の代わりにプライベートサーバーと通信を行うサーバー、つまりプロキシサーバー(踏み台)を設定できます。(この辺りを明確に説明している資料が見つけられないため、著者の解釈。簡単な解説は$ man ssh_configに記載あり)

-Wオプションは転送設定を行います。proxyサーバへ接続後、全てinput/output は %h:%p へ転送されユーザからの操作はすべて%h,%pに転送されます。
また%hはプロキシ経由で接続したいホスト、%pはそのホストのポート番号を意味します。(解説は$ man sshを確認)

ProxyCommand'の後には本来接続したいサーバーの接続情報を設定します。

最後に実行したいコマンドを"コマンド"のかたちで設定します。

コメント
@Tamera
2024年2月21日6:14
What NOT To Do Within The Best Accident Attorney Industry
top Accident attorney
@Aracely
2024年6月11日7:44
xnxx videos sex videos porn videos porn videos porn videos sex videos xnxx
videos porn videos porn videos xxx videos xxx videos sex videos sex videos
xnxx videos porn videos
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信