認証方法としてGemalto .NETスマートカードを使用して自分のマシンにSSH接続できるようにしたいのですが。これは、Fedora 13(または一般的なRed Hatスタイル)マシンでどのように実行できますか?
これらは私が必要だと思う大まかなステップです:
Gemaltoドライバーは今ではオープンソースだと思います。彼らは彼らのウェブサイトにソースコードを持っています。
pam
モジュールを構成する必要があります(これを行う方法はわかりませんが、コードは確かにそこにあります)。 pam
構成では、証明書の原則をローカルユーザーIDにマッピングする必要があると思います。
GDMは現在スマートカードをサポートしていると思いますが、それがどのようにそれを検出するかはわかりません。これについては後で調べます(おそらく最も簡単な方法は、gdm
ソースコードをのぞくだけです)。
もちろん、これにはすべてpcscd
とlibpcsclite
をインストールする必要があります。また、libgtop11dotnet.so
を/usr/lib
にコピーする必要があります。
ケルベロスをお勧めします。 MITは、krb5クライアントとサーバーを生成します。
vwduder、スマートカードリーダーとFIPS-201準拠のカードのソースを推奨できますか?
http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf
私は自分のサーバーにコピーを持っていますが、現時点ではこのスタックトレースであなたと共有するほど人気がありません。上記は私たちのサーバーよりも少しだけ信頼性が低いので、おそらくあなたはそれらからそれを得ることができるでしょう;)
[編集]私は今十分に人気があります!
RSAキーを使用する場合、1)と2)は取るに足らないものです。これは、3)でわかるように、実際の証明書はこのコンテキストでは無関係であるためです。 cacert.orgにアクセスするか、自己署名証明書を生成するだけで準備完了です。
3)の場合は、公開鍵を抽出して$ HOME/.ssh/authorized_keysにインストールする必要があります。ファイルの所有権と権限に注意してください! (.sshの場合は700、authorized_keysの場合は600)。ホスト全体の公開鍵認証は推奨されていませんが、探究心の練習として残されています。
4)については、PuTTY SC( http://www.joebar.ch/puttysc/ )または-preferably- PuTTY-CAC(- http://www.risacher.org/PuTTY-cac/ )これは、PuTTY SCより優れた公開鍵抽出アルゴリズムで改善され、さらにKerberos-GSSAPIサポートが含まれています。 PuTTYの開発ブランチ。
PuttySCと SecureCRT を使用してLinuxサーバーでスマートカードを使用する方法を示すビデオを作成しました。あなたはそれをここで見ることができます: スマートカードでSSHする方法
カードに証明書をプロビジョニングする方法については説明しませんが、その場合は、カードの管理キーをカード管理システムを使用して変更する必要があることに注意してください。この部分について心配する必要がないように、会社がスマートカードを提供すれば、はるかに簡単になります。
カードをプロビジョニングしたら、公開鍵を抽出して、〜/ .sshd/authorized_keyに追加する必要があります。
サーバーに接続するには、PuttySCやSecureCRTなどのツールを使用できます。カードのPSKC#11ライブラリを入手する必要があります(スマートカードの製造元またはオープンソースバージョンのいずれかから)。ライブラリを使用してSSHツールを構成します。ライブラリを読み取って証明書を見つけることができるはずです。
認証すると、ツールはスマートカードのPINを要求します。