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コマンドを記述したファイルを作成しなければなりません。
puttyのGUIに各サーバの設定を登録しているので、できればこちらの設定に全てまとめたいところです。
という事でputtyの設定を調べてみたところ、
にsshのコマンドを記述することで、コマンドラインの-mオプションと同様の事が実現できました。
ちなみに、こちらに記述する方法だと、-tオプションは1つで動きました。(リモートホストの環境によるのかもしれません)
これで各サーバ毎に端末のフォント色を変更した設定を作成し、一発でログインできるようになりました!