商用SSHにOpenSSHクライアントから公開鍵認証する方法

これは、7年ほど前に研究室でAlphaの計算機を購入したときに書いた資料ですが、あまりにマイナーな場所にファイルを放置していたので、blogに載せておきます。なお、HP Tru64 UNIXとしか書いてないのは、商用SSH(現SSH Tectia Server/Client)がインストールされているマシンが、手元にはTru64しかなかったからです。商用SSHがインストールされている他のUNIX上でも、手順は同じと思われます。
sshを用いれば、毎回passwordを打ちこんだとしても、passwordを盗まれる危険性は低いです。しかし、たとえ暗号化されているとしても、passwordを打ち込まない公開鍵認証(public key authentication)は、便利で、かつより安全です。
ところで、世の中にはOpenSSHサーバ<->OpenSSHクライアント間での認証の説明はたくさんあるのですが、商用SSH<->OpenSSH間の相互運用についての日本語の説明はあまりありません。そこで、今回は、研究室で新たに購入したHP Tru UNIX 5.1B (Alpha)に付属する商用 SSHサーバ(Version 3.2.0)に、 OpenSSHクライアント (Version 3.6.1p2 (Debian sid 2004/01/04))から公開鍵認証で接続する方法を調べました。
なお、ここでは、OpenSSH相互、また商用SSH相互の接続では公開鍵認証ができていることを前提とします。

OpenSSHで作成した公開鍵を商用SSHサーバのフォーマットに変換

商用SSHが用いる公開鍵のフォーマットと、OpenSSHが用いる公開鍵のフォーマットは異なります。そこで、OpenSSH側で、公開鍵のフォーマットを商用SSHのものに変換します。

$ ssh-keygen -e -f .ssh/hogehoge.pub > .ssh/hogehoge_ssh2.pub

商用SSHサーバが稼働しているマシンでのファイルの配置

商用SSHが用いる個人用設定ファイル群の配置は、OpenSSHのものとだいぶ異なります。最初は戸惑いましたが、次のようにすればよいです。

  1. ~/.ssh2/ ディレクトリの作成
  2. 先程作った商用SSHフォーマットの公開鍵を ~/.ssh2/hogehoge_ssh2.pubというファイル名で保存(名前は何でもかまいません)
  3. echo "Key hogehoge_ssh2.pub" >> ~/.ssh2/authorization として、~/.ssh2/authorization に公開鍵を登録