パスワード認証でのログイン、「root」ユーザーでのログインを禁止する。
ターミナルエミュレータは「RLogin」を使用する。
SSHの設定(サーバー側)
公開鍵認証を使用出来るようサーバー側で「sshd」の設定を変更する。
※「root」ユーザーで実行
「sshd_config」ファイルを開き「RSAAuthentication」「PubkeyAuthentication」「AuthorizedKeysFile」の設定項目を有効にし保存する。
[root ~]# vi /etc/ssh/sshd_config #RSAAuthentication yes #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys ※この3行のコメントを外す CentOS7では3行目はデフォルトで有効になっていた [root ~]$
「sshd_config」の構文チェックを行い、問題なければ設定を反映させる為「sshd」を再起動する。
[root ~]$ sshd -t [root ~]$ systemctl restart sshd [root ~]$
認証鍵の作成(クライアント側)
そこで、クライアント側にて認証鍵を作成し公開鍵をサーバーへアップロードする。
①Rloginを起動し、新規をクリックする
②[プロトコル]メニューの【認証キー】をクリックする
③【作成】をクリックする
④[パスフレーズ]を入力し【OK】をクリックする
ここで入力したパスワードは秘密鍵のエクスポート、及び秘密鍵でのログインに使用するため忘れないようにする。
⑤[認証キーリスト]に作成した鍵が表示されるので、選択している事を確認し【エクスポート】をクリックする
⑥保存先ファイル名と2.4で作成した[パスフレーズ]を入力し【OK】をクリックする
ファイル名は「ユーザー名_サーバー名.rsa」とかにしておくと分かりやすい。
⑦[認証キーリスト]に作成した鍵が選択されている事を確認し【公開鍵】をクリックする
⑧【OK】をクリックすると公開鍵がクリップボードにコピーされるので、メモ帳などに保存しておく
公開鍵の設置(サーバー側)
サーバー側に公開鍵を設置する。
※「test」ユーザーにて作業
「test」ユーザーのホームディレクトリに「.ssh」ディレクトリを作成し、パーミッションを「700」に変更する。
[root ~]$ su test [test /root]$ cd ~ [test ~]$ mkdir .ssh [test ~]$ chmod 700 .ssh
そのディレクトリ内に「authorized_keys」ファイルを作成し、⑧で保存した公開鍵を貼り付けて保存、パーミッションを「600」に変更する。
[test ~]$ vi ./.ssh/authorized_keys xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ※公開鍵を貼り付ける [test ~]$ chmod 600 ./.ssh/authorized_keys
秘密鍵を使用してログイン
秘密鍵を使用してログイン出来るか確認する。
[サーバー]メニューを選択し、エントリー、プロトコル、「Server Address」、「User Name」 「Password」を入力、【参照】をクリックする
「Password」は「認証鍵の作成④」で設定したパスフレーズです。
保存した秘密鍵を選択し【開く】をクリックする
【OK】をクリックする
作成したエントリーを選択し【OK】をクリックする
サーバーにログイン出来た事を確認する
Last login: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [test ~]$
パスワード、「root」ログイン禁止
パスワードによるログイン、及び「root」ユーザーでのログインを禁止するように「sshd」の設定を変更する。
最悪、サーバーへログイン出来なくなる恐れがあるので注意する。
※「root」ユーザーにて作業
「sshd_config」の「PasswordAuthentication」、「PermitRootLogin」を「yes」から「no」に変更し保存する。
[test ~]$ su - Password: [root ~]$ vi /etc/ssh/sshd_config #PermitRootLogin yes ※コメントを外し「yes」から「no」に変更 PasswordAuthentication no ※「yes」から「no」に変更 [root ~]$
「sshd_config」の構文チェックを行い、問題なければ設定を反映させる為「sshd」を再起動する。
[root ~]$ sshd -t [root ~]$ systemctl restart sshd [root ~]$