sshで多段接続

仮想環境も1つならポートを転送して直接sshでも良いが、調子に乗ってたくさん作ってるとワケが分からなくなる。たくさんポートを開けるのもセキュリティ上良くないので、ホストを踏み台にしてホスト経由でsshすることにする。

公開鍵暗号の設定については詳しいサイトを参照すること。

最初に公開鍵暗号でログインする設定にする。ssh-keygenで鍵ペアを作成し、秘密鍵をローカルの~/.ssh/に保存。公開鍵をホストおよびコンテナ内の~/.ssh/authorized_keysに追記。公開鍵認証でホストにログインできることを確認(公開鍵認証が成功するとパスワードなしでログインできる)した後にホストの/etc/ssh/sshd_configを編集してパスワード認証を禁止する。

次にローカルの~/.ssh/configを作る。

$ vi ~/.ssh/config

ホストがlxchost.example.comでsshのポートは10000番、コンテナは仮想ブリッジ10.0.3.0/24に接続しsshのポートはデフォルトのままとする。

Host lxchost
        HostName lxchost.example.com
        User lxcadmin
        Port 10000
Host wordpress
        User wordpressadmin
        ProxyCommand ssh lxchost nc 10.0.3.2 22
Host owncloud
        User ubuntu
        ProxyCommand ssh lxchost nc 10.0.3.3 22
Host rails
        User ubuntu
        ProxyCommand ssh lxchost nc 10.0.3.4 22

こうすれHostで設定した名前で接続できる。Userでデフォルトのユーザーを指定しておけばユーザー名を省略できる。

$ ssh lxchost

ユーザーlxadmin、ポート10000でlxchost.example.comに接続

$ ssh wordpress

ユーザーlxadminポート10000でlxchostに接続し、そこから10.0.3.2のポート22にユーザーwordpressadinで接続
同様にowncloudやrailsにも一発で接続できる。

scpも同じように使える。
2012年8月29日

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.