help.ubuntu.com/community/SSH/OpenSSH/Configureの手順では、パスワード認証を無効にして、「特別に承認したコンピューターからのみ接続できるようにする」ことを推奨しています。しかし、彼らはコンピュータを具体的に承認する方法については述べていません。どうすればいいですか?
承認された回答:
サーバーにアクセスするユーザーごとに、ターミナルで実行します。
ssh-keygen
ssh-copy-id <username>@<serverIPorDNSname>
保存する場所を尋ねられます。デフォルトで問題ありません。パスフレーズの入力を求められます。これは、コンピューターが盗まれたり危険にさらされたりした場合に備えて、キーを暗号化するためのものです。パスフレーズが必要ない場合は、両方のパスフレーズプロンプトを空白のままにします。
最初のコマンドは、実行されている現在のユーザーのsshキーを作成します。 2番目のコマンドはサーバーにSSHで接続し、現在のユーザーのキーをサーバーのログインを許可されているユーザーのリストに追加します。 ssh-copy-idはsshを使用しているため、パスワードログインを無効にする前にこれを行う必要があります。
SSHキーは2つの一致する半分です。半分はみんなに言われ、もう半分は秘密にされます。数学アルゴリズムを使用すると、公開鍵を使用して、秘密鍵で暗号化されたデータを復号化できます。データが公開鍵で正常に復号化された場合、それを暗号化したのは鍵の秘密の半分であったことは間違いありません。したがって、sshキーを使用してログインすると、クライアントは基本的に「let me in」というメッセージ(秘密キーを使用して暗号化)を送信します。サーバーは公開鍵を使用してチェックし、公開鍵が許可されたコンピューターのリストにある場合、ログインは成功します。
ssh-copy-idは、(sshを使用して)ログインを許可されているキーのサーバーリストにパブリックハーフをコピーします(このリストは/home/cat /media/USB/stick/path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2
のようなコマンドを実行します。 サーバー上で。)