web-dev-qa-db-ja.com

AD証明書を使用したWindowsからLinuxへのSSH

WindowsクライアントマシンがActiveDirectoryに接続されており、LinuxサーバーもActive Directoryに接続されています(LDAP付きのPAMを介して)。WindowsからLinuxへのパスワードなしのSSHを実行できるようにしたいと考えています。 ADアカウントのパスワードを入力する限り、SSHは正常に機能します。

次の記事を見つけたので、それをどのように行うことができるかがわかりましたが、機能させることができません: http://www.moelinux.net/wordpress/?p=95

私が試したのは次のとおりです(上記の記事に基づく):

  1. (クライアント上)AD証明書を.PFXファイルにエクスポートします
  2. 次のコマンドを使用して、.PFXをid_rsaファイルに変換します。opensslpcks12-in somefile.pfx -out id_rsa
  3. 次のコマンドを使用して、パスワードのid_rsaを削除します。opensslrsa-in id_rsa -out id_rsa
  4. 次のコマンドを使用して公開鍵を生成します。ssh-keygen-y-fid_rsa> id_rsa.pub
  5. (サーバー上)上記と同じルーチンなので、同じ〜/ .ssh /がありますクライアントとサーバー上のid_rsaと〜/ .ssh /id_rsa.pub。

ご想像のとおり、これは機能しません。それでもパスワードを入力する必要があります。どこが間違っていたのでしょうか?

(私が本当に達成しようとしているのは、ADアカウントを使用してWindowsからLinuxに可能な限りシームレスに接続する方法を設定することです。これは最善の方法のようですが、他の方法がある場合は、オープンです。アイデアへ:-))

X.509証明書とRSAキーを混同しています。これらは、PKIのまったく異なる実装です。ただし、クライアントとSSHサーバーはどちらもドメインメンバーであるため、キーを忘れてKerberos/GSSAPIを使用すると思います。 /etc/ssh/sshd_configサーバー上で、ディレクティブGSSAPIAuthenticationを見つけ、コメントを外して、値をyesに変更する必要があります。変更を保存した後、SSHデーモンを再起動します。

クライアントには、最新のPuTTY(0.61)またはOpenSSHが必要です。 PuTTYではデフォルトでGSSAPIが有効になっているため、SSHサーバーのhostnameを入力して(IPアドレスはnot機能します)、接続します。

7
AdmiralNemo