LoginSignup
1
1

More than 5 years have passed since last update.

公開鍵認証

Posted at

クライアント側

鍵を作成する。

ssh-keygen -t rsa

鍵名を入力する。(カレントディレクトリにファイルが作成される。)
空エンターの場合はユーザディレクトリ配下の.sshフォルダにid_rsaとid_rsa.pubが作成される。

Enter file in which to save the key (/home/<user>/.ssh/id_rsa):

パスフレーズの入力をする。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

以下のファイルが作成されます。

<ファイル名>(秘密鍵)
<ファイル名>.pub(公開鍵)

鍵名の入力で空エンターをしなかった場合は自分で.sshフォルダを作成して作成した秘密鍵を移動します。

mkdir .ssh
mv (秘密鍵) .ssh

作成した公開鍵をサーバーへ転送します。
クライアント側の公開鍵は転送後は削除しても大丈夫です。

scp .ssh/id_rsa.pub <user>@<server>:<path>

鍵のパーミッションを変更する。

chmod 600 .ssh/id_rsa

サーバ側

.sshフォルダを作成する。(既にあれば必要ない)

mkdir .ssh

.sshフォルダのパーミッションを変更する。
(パーミッションが775などだと疎通確認時に公開鍵認証がうまくできなかった。)

chmod 700 .ssh

クライアントから転送した公開鍵を.sshフォルダに移動しauthorized_keysに追加する。

mv id_rsa.pub authorized_keys <- authorized_keysがない場合
cat id_rsa.pub >> authorized_keys <- authorized_keysが有る場合

鍵のパーミッションを変更する。

chmod 600 authorized_keys

疎通確認

クライアントから以下のコマンドを実行します。

ssh -l <user> -i <秘密鍵のパス> <server>

パスフレーズを聞かれるので鍵作成時のパスフレーズを入力します。

Enter passphrase for key '.ssh/id_rsa':

ログイン出来れば問題ありません。

パスワードログイン禁止

公開鍵でログインできるようになったら、サーバーにパスワードでログインできないように設定を変更します。

sudo vi /etc/ssh/sshd_config

PasswordAuthenticationをnoに変更します。

PasswordAuthentication no

sshdを再起動します。

sudo systemctl restart sshd

パスワードでログインできなければ設定完了です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1