CentOS6で公開/秘密鍵の設定 - まだ秘密鍵なしで接続できます。

CentOS6で公開/秘密鍵の設定 - まだ秘密鍵なしで接続できます。

CentOS 6 VPSがあります。 SSH経由でログインしようとしていることがわかったので、キーベースの認証でログインをロックしたいと思いました。これまで私がしたことは次のとおりです。

マイクライアントコンピュータ(OSX)で次のコマンドを実行します。

ssh-keygen -t rsa

デフォルト設定(パスワードなし、デフォルト名など)を使用してこれを行います。

クライアントに次の権限を設定します。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

次のコマンドを使用して、自分の公開鍵を自分のVPSのユーザーフォルダのルートにコピーします(偽名/ IP)。

scp id_rsa.pub [email protected]:/home/fakeuser/id_rsa.pub

ここで私の.sshにauthorized_keysファイルがないことがわかりました。だからタッチを使って作りました。その後、CATを使用して.pubの内容をauthorized_keysファイルにコピーしました。

cat id_rsa.pub >> ~/.ssh/authorized_keys

.ssh と Authorized_keys に対する適切な権限を設定します。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

/etc/ssh/sshd_configから次のコメントを削除しました。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

その後、sshdを再起動しました。

service sshd restart

私が知っている限り、公開鍵認証を有効にするためにすべきことはこれです。ただし、-i 秘密鍵を指定せずに SSH を試みると、すべてのデバイスで許可されます。

答え1

クライアントキーがデフォルトの場所にある場合(または同等の設定ファイルエントリ)を使用して無効にしない限り、~/.ssh/id_$alg自動的に使用されます。-o IdentitiesOnly=yes秘密鍵のコピーがないクライアントから接続できる場合そしてパスワードを指定しないと、サーバーの認証設定が正しくありません。使いたいならただ秘密鍵 - >公開鍵認証、設定PasswordAuthentication no

PS:(anything >>fileおよびanything >file)ファイルが存在しない場合は不要な場合はファイルを作成してくださいtouch。デフォルトのリモートディレクトリscpはホームディレクトリなので、通常は指定する必要はありません。

返品:

RSAAuthentication何十年も前に破損し、絶対に使用してはいけないSSHv1で動作し、すべてのOpenSSHバージョンで長い間デフォルトで無効になっており、CentOS 6ではそうではないと予想されますが、7.4からサーバー側から完全に削除されました最新バージョンで入手してください。

PubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys(さらにこれはauthorized_keys2レガシーで廃止されました)がデフォルトであるため、実際にコメントを削除する必要はありません。

答え2

公開/秘密鍵のみを許可するには、サーバーでパスワード認証を明示的に無効にする必要があります。設定を変更または追加する場合/etc/ssh/sshd_config:

PasswordAuthentication no

また、KerberosやGSSAPIなど、未使用の他のすべてのタイプの認証を明示的に無効にしたいと思います。

関連情報