わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

PuTTYで多段リモートログイン〜nc, connect, ssh

昨日の続きです.
自宅などからWebサーバに入って,ファイルをほんの少し修正したい,Webサーバにはダイレクトに入れず,「アクセスを許されるドメインSSHサーバ」*1を介する,というときの方法を記録しておきます.

前提

  • Windows環境であること,PuTTYをインストールしておくことは,昨日と同じです.
  • 目的となるサーバの名前を _target_,経由するサーバを _via_ とします.いずれも,SSHサーバが稼動しているものとします.

PuTTYの準備

  • PuTTY設定を起動します.
  • カテゴリの「セッション」で,ホスト名には _via_ を記述します.セッション名は適当なものを.
  • カテゴリの「接続 / SSH」で,リモートコマンドには「nc _target_ 22」を書きます.
  • カテゴリの「セッション」に戻り,設定を保存します.

動作確認

  • PuTTYで,作ったセッション名で接続を試みます.しばらく待って,_target_ のコマンドプロンプトが出れば,めでたしめでたしです.失敗したら,次へ.

ncをconnectに置き換える

  • PuTTY設定を起動します.
  • カテゴリの「セッション」で,ホスト名には _via_ を記述します.セッション名は「_via_」にすることをおすすめします.
  • 他は特に設定することなく,設定を保存します.
  • これで _via_ に接続します*2.以下のコマンドを実行していきます.
  • PuTTY設定を起動します.
    • 上の「PuTTYの準備」で作ったセッション名を指定して,横の「読込」ボタンを押します.
    • 「接続 / SSH」で,「nc _target_ 22」と書いていたうちの nc を,"echo `pwd`/connect" の実行結果に置き換えます.
    • 「セッション」に戻り,「保存」ボタンを押します.
  • この時点で,「_via_」で起動したウィンドウも不要になるので,exitを実行して終了します.
  • PuTTYで,作ったセッション名で接続を試みます.しばらく待って,_target_ のコマンドプロンプトが出れば,めでたしめでたしです.失敗したら,次へ.

ncもconnectもダメなら,ssh

  • PuTTY設定を起動します.
    • 上の「PuTTYの準備」で作ったセッション名を指定して,横の「読込」ボタンを押します.
    • 「接続 / SSH」で,「(略)/connect _target_ 22」を「ssh _target_ 22」に置き換えます.
    • 「セッション」に戻り,「保存」ボタンを押します.
  • PuTTYで,作ったセッション名で接続を試みます.しばらく待って,_target_ のコマンドプロンプトが出れば,めでたしめでたしです.
  • これでもダメなら,お手上げです,最後のあがきとしては,
    • _via_ か,_target_ のスペルを間違っていませんか?
    • _via_,_target_ のそれぞれにドメイン名を書いたら,うまくつながったりして.
    • _via_ で認証を受けるためのユーザ名とパスワード,_target_ 以下同様,を間違ってたら無理っすよ.

余談

昨日から今朝にかけて,あれこれ試したのですが,「nc」による方法は失敗しています.ただ,自宅のPuTTY設定に,「nc」による接続方法が記録があるので,かつては成功していたようです.
しかし,Cygwinで,~/.ssh/configにProxyCommandを記述する場合は,問題なく接続できています.
_via_ にリモートログインしてから,ncコマンドやconnectコマンドもまた,うまくいっていません.
PuTTYの「接続 / プロキシの設定」にもいろいろ書いたのですが,失敗ばかりでした.

*1:一般に「踏み台サーバ」と呼ばれますが,「踏み台」にあまりいいイメージがないので,ここで使うのに躊躇しますね….

*2:接続に失敗したら,_via_ のホスト名か,ユーザ名か,パスワードの少なくとも一つが間違いです.