今やネットワーキングに欠かせない存在であるSSHだが、ついにSSH2プロトコルがRFCになったようだ。(RFC4250, 4251, 4252, 4253, 4254, 4255, 4256) さらっと目を通しただけだが、所々にOpenSSHの独自拡張への牽制が垣間見えておもしろい。

 RFC4255でDNSのSSHFP RRを通じてホスト鍵を伝える方法が規定されているが、OpenSSHは3.8の段階でこれを引く機能を実装しているようなので、手元でも設定してみた。

 DNS行に記述する内容は、ssh-keygen(1)コマンドで簡単に得られる。

$ ssh-keygen -r host.example.org -f /etc/ssh/ssh_host_rsa_key.pub
host.example.org IN SSHFP 1 1 123456789abcdef67890123456789abcdef67890

 そして~/.ssh/configに「VerifyHostKeyDNS yes」と書いておけばいい。

 ただ、OpenSSHの~/.ssh/config解釈には困った問題があり、バージョン間の差異を吸収できない。つまり、VerifyHostKeyDNSを記述すると、同オプションをサポートしないバージョンのsshはエラーを吐いてしまう。ssh_configについてもまともに拡張して、RFCでリードしてほしかったなあ。(と、思ったけど設定ファイルの形式などはIETFの扱う範疇にないか)


Categories : Tech