2015-07-27

Mac (OS X Yosemite) で ssh が公開鍵認証を使うように設定する方法

Mac で ssh が公開鍵認証を使うように設定してみます。
OS X のバージョンは 10.10.4 を使って動作を確認しました。

必要な手順は
  1. クライアントで鍵ペアを作る
  2. サーバに 1. で作った公開鍵をコピーする
  3. サーバの sshd に公開鍵認証を使用する設定を行う
です。

2. と 3. は順番が逆でもいいですが、リモートから設定する事を想定してこのような手順としました。

1. クライアントで鍵ペアを作る

ディレクトリ ~/.ssh に ssh-keygen を使って鍵ペアを作ります。
ターミナルで
$ ssh-keygen -t rsa
とし、パスフレーズとか聞かれた事に答えるとファイルが作られます。
ファイル名はデフォルトのまま id_rsa でOKです。

2. サーバに 1. で作った公開鍵をコピーする

クライアントで作成した公開鍵ファイル ~/.ssh/id_rsa.pub の内容をサーバのファイル ~/.ssh/authorized_keys の末尾に追加します。

既存ファイルがない場合

単純にファイル名を authorized_keys に変更してコピーします。
コピー後、アクセス権を変更して書き換えできないようにしておきます。
$ chmod 600 ~/.ssh/authorized_keys

既存ファイルがある場合

ファイルを適当な場所にコピー( ~/id_rsa.pub とする)して、次のように末尾に書き込みます。
$ chmod 700 ~/.ssh/authorized_keys
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

3. サーバの sshd に公開鍵認証を使用する設定を行う

vi などを使用して /etc/sshd_config を次のように編集します

次の3行(連続した行ではありません)
#PermitRootLogin yes
#PasswordAuthentication no
#ChallengeResponseAuthentication yes
を次のように変更
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
ついでに root でログインも禁止しておきました。

ssh 接続する

ここまで設定できたらこれまでどおり
$ ssh userid@hostname
でログインします。
キーペアを作成した時に設定したパスフレーズを聞かれるため、答えればOK。

以上です。
それでは、また。

0 件のコメント: