web-dev-qa-db-ja.com

別のコンピューターから秘密鍵を使用する場合はどうすればよいですか?

PuTTYを使用して上司のコンピューター(Win 10)からサーバーの1つに接続します。そのために、私は自分の秘密鍵を使用します。キーが盗まれるのを防ぐために、前/後に何をすべきですか?

私の計画は:

  1. PuTTYをインストールする
  2. priv_keyファイルを追加します
  3. 接続する
  4. PuTTYをアンインストールする
  5. priv_keyを削除する
47
sysfiend

より安全な方法は、この目的で使用する新しいキーペアを作成することです。

  • 上司のコンピューターにキーペアを作成します。
  • 公開鍵を自分のコンピューターに転送します。
  • サーバーに接続し、公開鍵を追加します。

これで上司のコンピューターがサーバーに接続できます。これが完了したら、サーバー上のキーを削除できます。このように、あなた自身のキーはあなたのコンピュータを離れることはなく、あなたのボスのキーはしばらくの間だけ有効です。

121
Sjoerd

良い解決策は、ホストコンピュータにキーマテリアルを明らかにすることなく、すべての暗号化操作を実行する専用ハードウェアデバイスにキーを置くことです。 OpenSC 、OpenPGPスマートカード(GnuPGとOpenSCの両方でサポート)、またはYubikey(この場合はOpenPGPカードのように動作します)でサポートされている任意のPKIカードを使用できます。

OpenSCでサポートされているカードの場合、OpenSCをインストールし、OpenSSHにそれを使用するように指示します。

ssh -I /usr/lib/opensc-pkcs11.so [email protected]

GnuPGの場合は GPGエージェントをSSHエージェントとして使用 でカードのキーが公開されます。パスフレーズ/ PINキャッシュが必要でない限り、OpenSC over GPGを使用することをお勧めします。

Windowsでは、カードのミニドライバー(MicrosoftがOpenSCのようなソフトウェアを呼び出す方法)のいずれかを使用する必要があります-システムに許可すると、それらのほとんどは自動的にダウンロードできますオンラインでドライバーを検索します。公式のミニドライバーが見つからない場合は、汎用のミニドライバーを含むOpenSCのWindowsビルドを使用できます。 OpenPGPカードには サードパーティのミニドライバー があり、OpenSCのものよりもうまく機能することに注意してください(実際、PKCS11ライブラリがうまく機能していても、OpenSCのミニドライバーをOpenPGPカードで動作させることができませんでした。そのOpenSCがカードと話していた)。

ミニドライバーがインストールされると、ソフトウェアはシステムの標準のCrypto APIを使用してカードと通信できるようになります(カードはユーザーの証明書ストアの他の証明書と同じように表示されます)。 PuTTY-CAC は、これらの証明書(およびカード)を利用できるプログラムで、PuTTY自体と、SSHエージェントに相当するPuTTYのPageantが含まれています。 Cygwin/MSYSの下でssh-pageant実行中のPageantを、標準のsshで使用できるSSHエージェントに変換します(CAPIとSSHの間の直接ブリッジは優れていたでしょうが、そのようなものはまだ存在しません)。

15
André Borie