BLOGTIMES
2009/02/24

sshは続くよどこまでも

  cli  ssh 
このエントリーをはてなブックマークに追加

ちょっしたネットワークのサーバにsshでログインしようと思うと、踏み台にログインして、その内側の踏み台にログインして・・・・・を繰り返して、やっと目当てのサーバにログインということは多いと思います。そのためにこれまではターミナルがもう一つ欲しいなと思っても、また何度もログインするの面倒だからなと思ってちょっと不便なのを我慢しながら作業していました。

これをなにかうまくやる方法はないかと思って調べてみると、SSHのProxyCommandというオプションと、netcatというコマンドをうまく使うことで、踏み台を意識しないで一気に目的のサーバにログインできることがわかりました。

ncある限りぼくはどこまででもいけるッ! - (ひ)メモ

ポイントは、ProxyCommandでsshコマンドの引数として指定するホスト名は、ほかのHostキーワードで定義したものが使える、という点である。(冷静に考えるとこれは当然である。なぜなら、ProxyCommandはローカルで実行されるのであるから)

今回の例ではProxyCommandを使用しているのはkotatsuとgenkanの2段だが、この仕組みを利用すれば、幾重にもProxyCommandを重ねてどこまでも遠くへゆくことが可能となる。(たとえば、kotatsuの先にある、todana、oyatsuなど)

具体例

例えば下記のような構成の場合に、dest_serverに直接ログインする設定はこんな感じ。
MyPC ----> fumidai_server ----> dest_server

~/.ssh/config

Host dest_server ProxyCommand ssh fumidai_user@fumidai_server nc -w 10 dest_server User dest_server_user

各サーバへのキーの設定や、エージェント転送を使えばssh dest_serverとするだけで、パスワード入力なしでdest_serverにログインすることができるようになります。劇的に便利になったので久々にちょっと感動しました。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2858
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン