その4は、”PasswordAuthenticationを禁止に設定して鍵を利用する”です。
パスワードでログインできることを確認する
設定前に確認してみます。
$ ssh localhost user@localhost's password: $ logout Connection to localhost closed. $
パスワードでログインできました。
パスワードでのログインを禁止する
下記のパラメータを設定するだけです。
$ sudo bzr diff sshd_config | grep Auth | grep Pass -#PasswordAuthentication yes +PasswordAuthentication no $ sudo /etc/init.d/ssh restart [sudo] password for user: * Restarting OpenBSD Secure Shell server sshd ...done. $ ssh localhost Permission denied (publickey). $
接続できるようにする
接続するためには、キーペアを作成して公開鍵を.ssh/authorized_keysに設定する必要があります。
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: The key's randomart image is: +--[ RSA 2048]----+ | .o+*+. | | . . . | | . + + E | | . o . . | | = Ss . | | * * .. | | B +. . | | + | | . . | +-----------------+ $ cat .ssh/id_rsa.pub >> .ssh/authorized_keys $ ssh localhost Enter passphrase for key '/home/ksaito/.ssh/id_rsa': $
公開鍵のコピーは、ssh-copy-idコマンドを使うと簡単ですが、この設定をした場合、パスワード認証が使えないのでエラーとなってしまいます。
$ ssh-copy-id localhost Permission denied (publickey). $
考察
この方法は、コンソールに直接ログインして公開鍵をコピーすることが必須となります。
パスワード認証をしないのでブルートフォース攻撃を無効にします。
秘密鍵とパスフレーズは、個人の管理なので秘密鍵を不用意にコピーしたりパスフレーズを忘れた場合は、設定し直しになります。