せっかなくので、やってみた。

日々のあんなこと、こんなこと、せっかくなのでやってみた

puttyで踏み台サーバから別のサーバにsshしたい

puttyを使って踏み台サーバから別のサーバにsshしたい時、今まで一度踏み台サーバにログインして、そこから再度目的のサーバにsshするという操作をしていました。
複数のサーバを操作する時は、操作を間違えない様にサーバごとの設定を開いてフォントを色分けするなどしていたのですが、常用するのはさすがに辛くなってきたので、TeraTermのマクロ機能の様なものが無いか調べてみました。

ネットで検索すると、リモートサーバで実行したいコマンドを記述したファイルを作成して、puttyの-mオプションでファイルを指定してあげると良いそうです。
試しに以下の様なファイルを作成し、コマンド来からputtyを実行してみると、

> cat cmd.txt
ssh hogeuser@192.168.0.123

> puttty -load "hoge-server" -m cmd.txt

sshした端末側で以下のエラーとなってしまいました。

Pseudo-terminal will not be allocated because stdin is not a terminal.

ネットを見ると色々情報があって、踏み台からさらに先のサーバにsshする際に疑似端末(Pseudo-terminal)が割当てらないとの事だそうです。
という事でファイルの中身を

ssh -t hogeuser@192.168.0.123

として試したのですが、またもや同じエラーが出てしまいます。
めげずに再度検索したらこんな記事がありました。
snickerjp.blogspot.com

どうも強制的に疑似端末を使用するよう、-tオプションを2回記述する必要があるみたいです。
という事で、以下の記述で見事sshに成功しました!

ssh -t -t hogeuser@192.168.0.123

と、ここまではネットに情報が結構があるのですが、踏み台経由で接続するサーバ毎にわざわざsshコマンドを記述したファイルを作成しなければなりません。
puttyGUIに各サーバの設定を登録しているので、できればこちらの設定に全てまとめたいところです。
という事でputtyの設定を調べてみたところ、

PuTTY設定の接続>SSH>リモートコマンド

sshのコマンドを記述することで、コマンドラインの-mオプションと同様の事が実現できました。
f:id:moneci:20211007223858p:plain

ちなみに、こちらに記述する方法だと、-tオプションは1つで動きました。(リモートホストの環境によるのかもしれません)
これで各サーバ毎に端末のフォント色を変更した設定を作成し、一発でログインできるようになりました!