別の所に書いていた日記なんですが、エライ苦戦したので、Blogにアップしておきます。第二段。

レシピはSSHの多段階接続です。
ちなみにsshdはOpenSSHです。

なんというか、networkの華がある機能ですねぇ。


が。。。。

ssh+proxycommandに大苦戦。

構成としては、


クライアント -----> 踏み台sshサーバ(a) -----> 目的のサーバ(b)

って事がやりたい訳です。
なんでこんな面倒な事するかというと、
直接目的のサーバへはセキュリティ上sshを許可したくない。
かといって、一端踏み台サーバにログインして、目的のサーバにsshすると、踏み台サーバに全ての公開鍵を持っていなくてはならないので、セキュリティ上問題があるから。

で対策として考えたのはssh -D かProxyCommandの2通り。

ssh -Dのダイナミックルーティングだと、踏み台サーバに鍵を持っていないといけないらしいので、却下。ProxyCommandで対応することにした。

やり方は結構単純で、
クライアントのlinux内に〜/.ssh/configというファイルを作っておいて、
こんな感じに記入。

Host hoge.example.com
  ProxyCommand ssh -l [踏み台サーバのユーザ] piyo.example.com nc %h %p

コレでhoge.example.comにsshすると、piyo.example.com へ ssh 接続して nc コマンドを起動します。
nc コマンドの引数には %h と %p を指定していますが,これは (b) を起動する際に,(a) を起動したときの接続先のホスト名とポート番号に置き換えられます。
この設定なら %h は hoge.example.com に,%p は 22 に置き換えられます。

問題はsshを全て公開鍵認証にしてあること、
踏み台サーバも公開鍵がないとアクセスできないので、
実際sshはこうやって打ちます。

# ssh -l [目的サーバのユーザ] hoge.example.com -i [公開鍵のパス]

この公開鍵は、踏み台サーバ+目的のサーバ双方で同一の鍵にして有ります。(別々に指定するやり方もあるかも・・・)

これから実験する予定な事

1 踏み台と目的サーバの公開鍵を分けられるか?
2 分けられない場合パスフレーズだけでも別にできるか?
3 クライアントがwinの場合はどうやる?

辺りです。1はよく解らないのですが、2はいけそうな気がします。
2段階目の接続のときにもパスフレーズ聞かれましたから。
windowsで同じことをやる方法はソフトゥエア依存なので、これから調べます。PuTTyにはそういう機能があるらしいけど。。。どうなだろ?

ちなみに調べていくうち知ったTips

  • sshコマンドで公開鍵を指定しない場合、〜/.ssh/identityというファイルを探しに行く。ファイルが見つかった場合、コレを公開鍵として使う。通常のパスワード認証のサーバにアクセスしても問題はない。(鍵のパスフレーズを無駄に入力させられるだけ)この方がオススメ。
  • 公開鍵のパーミッションは600にしておくべし。他のユーザが読めるようだとエラーになる。
  • sshでつながらない場合はssh hoge.example.com -vとやるとデバック出力が見れる。
  • ログが見たい場合は/var/log/secure。ただほとんど接続先のログに吐かれる(あたりまえか・・)

はぁ〜、しんどかった。 ヽ(´Д`;)ノアゥア...

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: SSHの多段階接続 (公開鍵認証編)

このブログ記事に対するトラックバックURL: http://hackmylife.net/mt/mt-tb.cgi/380

コメントする

このブログ記事について

このページは、hackmylifeが2007年2月18日 00:38に書いたブログ記事です。

ひとつ前のブログ記事は「OpenPNEへ携帯から日記投稿機能の設定」です。

次のブログ記事は「ダイナミックDNSで自宅サーバー公開」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0

アドセンス

MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore
MoMAstore
MoMAstore
MoMAstore