前回、Tera Term(テラターム)を使用して、公開鍵認証ログインに用いる公開鍵、及び秘密鍵を作成しました。
公開鍵認証でログインするには、接続するサーバ側でのSSH(Secure Shell)サービス設定変更、及び作成した公開鍵をサーバ所定の保存先に追加する作業が必要となります。
ここでは、それらの設定方法についてご紹介していきます。
接続先サーバ側SSHサービス設定変更
・設定ファイル
/etc/ssh/sshd_config
・変更箇所
以下3行のコメントを外します。
当方の環境では、デフォルトで有効になってましたが明示的に有効とします。
===============================
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
↓
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
===============================
またパスワード認証ログインを無効にします。
===============================
#PasswordAuthentication yes
↓
PasswordAuthentication no
===============================
サービス再起動
変更した内容を反映させるためにSSHサービスを再起動します。
;; SSHサービス再起動 # service sshd restart ;; 又は # /etc/init.d/sshd restart
接続ユーザのホームディレクトリに公開鍵を配置
まず公開鍵を接続するユーザのホームディレクトリ配下に配置します。デフォルトでは「~/.ssh/authorized_keys」が公開鍵を追記するファイルになります。
「sshd_config」の「AuthorizedKeysFile」部分を変更している場合は、その設定にあわせる必要があります。
まずTeraTermで作成した公開鍵(id_rsa.pub)をユーザのホームディレクトリにアップロードしましょう。 アップする方法は以下を参照↓↓↓
⇒ Tera Term(SCP機能)を利用してのファイル転送(送信編)
そして[cat]コマンドを使用して所定のファイルに追記します。接続するユーザ、及びそのホームディレクトリで実行します。
$ cat id_rsa.pub >> ./.ssh/authorized_keys
「.ssh」のディレクトリが存在しない場合は、新規で作成してください。
$ mkdir .ssh $ chmod -R 700 .ssh
作成後「.ssh」ディレクトリのパーミッションを確認してください。所有者以外に何かしらの権限が付与されていると、下記エラーでログインできません。
Authentication refused: bad ownership or modes for directory /home/xxxx/.ssh
最後にファイルのアクセス権を変更します。(所有者のみ読めるようにします)
$ chmod -R 600 ./.ssh/authorized_keys
おわりに
以上で接続サーバ側の設定&公開鍵の配置作業は完了です。
次回は、Tera Termを使用して公開鍵認証でサーバへログインします。
⇒ SSH公開鍵暗号化方式-Tera Termで公開鍵認証ログイン