2015年6月26日金曜日

ssh/configの書き方と踏み台サーバを利用した多段sshログイン,多段scp

いろんなところで書かているんですが、あるサーバにsshで入って、それを踏み台に別のサーバにsshで入る方法。あと、これを調べたときに~/.ssh/configに設定を書くとsshコマンドのホスト名を簡略化できることも知ったので、それについても。 やってること自体は以前に書いたssh転送と同じことですね。

1.~/.ssh/configの書き方
Host fumidai # 自分がわかりやすい好きな名前で
    User         user # ユーザ名
    HostName     host.fumidai.com # ホスト名
    IdentityFile ~/.ssh/id_rsa
    Port     port_num # 利用するポート番号    

このようにすると
ssh fumidai
だけでssh接続ができます。便利! 次に,上のサーバを踏み台に目的のサーバに入る場合
Host fumidai # 自分がわかりやすい好きな名前で
    User         user # ユーザ名
    HostName     host.fumidai.com # ホスト名
    IdentityFile ~/.ssh/id_rsa # 秘密鍵
    Port     port_num # 利用するポート番号  

  Host target # 同上
    User         target_user # 目的のサーバのユーザ名
    HostName     host.target.com #  目的のサーバのホスト名
    IdentityFile ~/.ssh/id_rsa # 上と同じ秘密鍵
    ProxyCommand ssh fumidai -W %h:%p  
注意すべきはIdentifyFileは上記と同じ、手元にあるマシンの秘密鍵を指定すること

ProxyCommandは目的のサーバに接続する際のコマンドで、%hがHostNameに%pがPort(デフォルト22)に変換されます。
-Wオプションについては、軽く調べたのですが多段sshを行う際に使われるコマンドのようだ、としかわかりませんでした・・・。

これで踏み台サーバへの次のコマンドだけで入れちゃいます。

ssh target
多段scpも同様に

scp -r target:/home/user/folder ./

とできちゃいます。