SSHを介したパスワードなしのログインの概念を理解しようとしています。私が理解している限り、FROMを接続するコンピュータ上にSSHキーペアを作成します。次に、公開鍵を接続先のサーバーにコピーします。ここまでは順調ですね?基本的に間違っている場合は修正してください...
その結果、パスワードなしのログインは自分のコンピューター(秘密キーが存在するため、キーペアが作成された場所)からのみ実行できるようになると思います。
しかし、複数のコンピューターから同じサーバーにパスワードなしのログインを使用できるようにしたい場合はどうなりますか?サーバーに接続し、各公開キーをサーバーにコピーする各コンピューターでキーペアを作成する必要がありますか?どうすればよいですか?
複数のマシンでこの手順を実行するか、秘密鍵をコピーします。個人のセキュリティ要件とワークフローによっては、一方が他方よりも簡単または「優れている」場合があります。
秘密鍵が危険にさらされている場合は、authorized_keys
ファイルから秘密鍵を削除するか、失効させる必要があります。さらに、ワークフローによっては、複数のマシンの新しいキーを登録する必要があります。マシンごとに1つのキーを使用すると、安全性が高まる可能性がありますが、管理オーバーヘッドが増える可能性もあります。
私はホストごとに1つのキーを使用します。公開キーには、その理由のためにコメントとして生成されたホストの名前があります。 ssh-copy-id
を使用すると、キーをすばやくインストールできます。
作業するさまざまなホストがたくさんある場合は、スマートカードとリーダーを用意することをお勧めします(USBキーフォブ形式のリーダーがあり、カードを保持するのに十分なスペースがあります)。あなたと簡単に鍵をかけ、それがコピーできないことを確認してください。
複数の「パスワードなし」の方法があり、いくつかはキーをコピーする必要があり、他には異なるオプションがあります。
SSH CA:SSH CAをセットアップし、CA公開鍵をサーバーに配布します。次に、SSH CAの秘密鍵を使用して、CAを信頼するシステムへのアクセスを許可する公開鍵に署名します。これには多くの利点があります。
欠点として、公開鍵に無期限に署名した場合、元に戻す唯一の方法は、新しいCAを作成するか、個々のシステムごとに特定の公開鍵をブラックリストに登録することです。
その他のオプション:Kerberos。これはセットアップにはるかに複雑です(ただし、FreeIPAのようなシステムは非常にうまくパッケージ化されているため、簡単になっています)。どこにでもログインする代わりに、一度ログインするとKerberosチケットが提供されます。このチケットは、Webサイト、ファイル共有、SSHサーバーなどのさまざまなシステムの認証に使用できます。
あなた自身のオプション:
単純な鍵ペア(秘密鍵と公開鍵)を使用します。接続するすべてのシステムに秘密鍵をコピーし、接続するすべてのシステムに公開鍵をコピーするか、システムごとに固有のペアを作成して、接続するすべてのシステムにすべての公開鍵をコピーします。