優れたソフトウェアと実用的なチュートリアル
通常、SSHを使ってリモートサーバーにログインする場合、ユーザー名とパスワードを入力する必要があります。これは、システムのメンテナンスを頻繁に行う人にとっては非常に面倒です。パスワードを入力せずにリモートサーバーに直接ログインするにはどうすればよいでしょうか?リナックス/Unix サーバーですか? SSH 公開鍵認証でこの問題を解決できます。
公開鍵認証では、暗号化された文字列のペアを使用します。1つは「公開鍵」と呼ばれ、誰でも閲覧でき、暗号化に使用されます。もう1つは「秘密鍵」と呼ばれ、所有者のみが閲覧でき、復号に使用されます。公開鍵で暗号化された暗号文は秘密鍵で簡単に復号できますが、公開鍵から秘密鍵を推測することは非常に困難です。
公開鍵認証を使用する前に、サーバーのSSH設定ファイル/etc/ssh/sshd_configを確認してください。
RSAAuthentication yes # RSA認証を有効にします。デフォルトは yes です。PubkeyAuthentication yes # 公開鍵認証を有効にします。デフォルトは yes です。
設定に問題がなければ、次の手順に進むことができます。
例を見てみましょう。例えば、クライアントAとサーバーBの2台のマシンがあるとします。クライアントユーザーであるマシンAからサーバーユーザーであるマシンBにSSH公開鍵認証を使用する場合、方法は次のとおりです。
1. クライアントAで公開鍵と秘密鍵を生成する
ssh-keygen -t rsa 公開鍵/秘密鍵ペアを生成しています。鍵を保存するファイル (/home/client/.ssh/id_rsa) を入力してください: #Penterキーを押してください。ディレクトリ '/home/client/.ssh' を作成しました。パスフレーズを入力してください (パスフレーズがない場合は空白のままにしてください): #Penterキーを押してください。同じパスフレーズをもう一度入力してください: #Penterキーを押してください。ID は /home/client/.ssh/id_rsa に保存されました。公開鍵は /home/client/.ssh/id_rsa.pub に保存されました。鍵のフィンガープリントは次のとおりです: f5:30:ba:10:ee:7a:c6:cf:d8:ec:3f:4c:b3:f1:09:6d client@linuxsong.org
これにより、このマシン上の現在のユーザー クライアントの公開キー (/home/client/.ssh/id_rsa.pub) と秘密キー (/home/client/.ssh/id_rsa) が生成されます。
2. 前の手順で生成した公開鍵ファイルをサーバー B にコピーします。次に、ファイルの内容をサーバーのユーザー ディレクトリの .ssh/authorized_keys に追加します。
cat id_rsa.pub >> .ssh/authorized_keys
こうすることで、クライアントユーザーはクライアントからサーバーユーザーにログインするときにパスワードを入力する必要がなくなります。
さらに、サーバーのセキュリティが比較的高い場合は、ユーザーが公開鍵認証でのみログインできるように設定し、パスワードによるログインを禁止することもできます。サーバーの設定ファイル/etc/sshd/sshd_configを変更するだけです。
パスワード認証番号
変更後、sshd サービスを再起動します。
このようにすると、ユーザーがパスワードを使用してログインするときに、次のプロンプトが表示されます。
権限が拒否されました (公開鍵、gssapi-with-mic)
システムのセキュリティを効果的に向上します。
知らせ:
.sshディレクトリの権限は0700である必要があります
.ssh/authorized_keysファイルの権限は0600である必要があります
そうしないと、公開鍵認証は有効になりません。