前回、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で公開鍵認証ログイン