Linuxサーバに秘密鍵方式でsshする


■環境

CentOS 7.2


■手順

①秘密鍵と公開鍵を生成
ローカルPCにて以下を実施します。
MacでもLinuxでも同じコマンドで生成できるはずです。

$ ssh-keygen -t rsa -b 4096  
Generating public/private rsa key pair.  
Enter file in which to save the key (/Users/hoge/.ssh/id_rsa):  
=>生成するパスとファイル名を指定(空欄のままだと括弧内のファイル名で生成される)  
Enter passphrase (empty for no passphrase):  
=>生成する鍵のパスワード。不要なら空欄のままエンター  
Enter same passphrase again:  
=>鍵のパスワードの再入力  

生成した秘密鍵と同ディレクトリに公開鍵(拡張子pub)も生成されているので、
catコマンドで中身を見ておく。(後ほど使うのでコピーしておくと良い)

②公開鍵をサーバに格納
ログイン先サーバにて以下を実施

$ mkdir ~/.ssh  
$ vim ~/.ssh/authorized_keys  

この「authorized_keys」に①で生成した公開鍵の中身を貼り付ける。

以上で秘密鍵認証でログインできるようになっている。
もし接続できなかった場合は以下設定も確認してみる。

③【繋がらない場合のみ】sshd設定確認
ログイン先のサーバにて以下を実施

$ vim /etc/ssh/sshd_config  

以下の設定となっているか確認

RSAAuthentication yes  
PubkeyAuthentication yes  
AuthorizedKeysFile     .ssh/authorized_keys  

※上から2つはコメントアウトされていても良い