公開鍵認証方式を用いたSSH通信の設定方法
1. 暗号化方式の変更[接続先PC]
「/etc/ssh/sshd_config」を編集
$ sudo vi /etc/ssh/sshd/sshd_config
公開鍵暗号方式の有効化とパスワード認証方式の無効化
+ PubkeyAuthentication yes # 追記
- PasswordAuthentication yes
+ PasswordAuthentication no # 変更
リスタート
$ sudo systemctl restart sshd
2. 秘密鍵と公開鍵を作成[接続元PC]
鍵の作成
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yuhi-sa/.ssh/id_rsa): # 無記入でEnter
Enter passphrase (empty for no passphrase): # パスフレーズを入力
Enter same passphrase again: # パスフレーズを入力
Your identification has been saved in 保存先ディレクトリ
Your public key has been saved in 保存名
ファイル名を空白にした場合は「/.ssh/」以下にファイルが作成される. id_rsa.pubが公開鍵,id_rsaが秘密鍵となる.
ssh-keygenコマンド
$ ssh-keygen [オプション]
- オプション
- -t dsa:DSA暗号指定
- -t rsa1:RSA暗号指定(ver1)
- -t rsa:RSA暗号指定(ver2)
- -p:パスフレーズ変更
- -f ファイル名:鍵ファイル指定
3. 「/.ssh」ディレクトリを作成[接続先PC]
「/.ssh」ディレクトリを作成し,700の権限を与える.
$ sudo mkdir /home/[ユーザ名]/.ssh
$ sudo chown [ユーザ名]:users /home/[ユーザ名]/.ssh
$ sudo chmod 700 /home/[ユーザ名]/.ssh
- 700権限:所有者以外は操作できない
4. 公開鍵を登録[接続先PC]
「/.ssh」ディレクトリに「authorized_key」ファイル作成.
$ sudo touch /home/[ユーザ名]/.ssh/autorized_keys
先ほど作成した公開鍵暗号を登録.
$ sudo vi /home/[ユーザ名]/.ssh/autorized_keys
600の権限を与える.
$ sudo chmod 600 /home/[ユーザ名]/.ssh/autorized_keys
- 600権限:所有者のみの読み書き可能
5. 接続[接続元PC]
$ ssh [ユーザ名]@IPアドレス
Enter passphrase for key '/Users/[ユーザ名]/.ssh/id_rsa': # パスフレーズを入力
Tags: