※2021/03/06 もう少しわかりやすく追記
鍵の生成
公開鍵認証を作成
※serverで作成して秘密鍵をローカルに設置 or ローカルで作成して公開鍵をserverへ設置
どちらでも基本的に行うことは変わらない
server作成の場合
- ディレクトリ移動ない場合作成
cd ~/.ssh
- 鍵の生成を行う
ssh-keygen -t rsa
Enter passphrase (empty for no passphrase):
と聞かれるのですがここは何も入力せずEnterを押せばOKです。何も入力をしないことでssh接続する際にパスワードが不要になります。-t
で生成する鍵の種類を指定することができます。
ssh-keygenによって以下の二つの鍵が生成されます。 秘密鍵はローカルホストに、公開鍵はリモートサーバーに配置します。
- id_rsa(秘密鍵)ローカル
- id_rsa.pub(公開鍵)サーバ
鍵の設定
- このままだと使えないので鍵を記述必要するがあります。
- 公開鍵を一度も設定していない場合
- 作成したキーの名前を変更
- 公開鍵を一度も設定していない場合
mv id_rsa.pub authorized_keys
- 過去に作成して使用している場合(追記する場合)
cat id_rsa.pub >> authorized_keys
秘密鍵の配置
秘密鍵を配置し、パーミッションを変更します。
- .sshは700 id_rsaは600に変更
秘密鍵はローカルホストのどの場所に配置しておいても問題ないのですが~/.ssh
ディレクトリ下がいいと思います。
接続テスト
ここで鍵認証でサーバに接続できるかテスト
※テストしないで下記ファイル編集をしてしまうと面倒なことになります!!
VPSならコンソールに入って、パスワード復活させてなど・・・
sshdファイル編集
/etc/ssh/sshd_configの編集
- 念の為バックアップ
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.BAK
- sshd_configの下記項目変更(ポート番号変更とかはお好みで)
PermitRootLogin no #ルートログオンの禁止 PasswordAuthentication no #パスワードでのログオン禁止
※ルートログオン禁止前に一般ユーザの作成および一般ユーザでのSSH接続を試しましょう!
- service再起動
systemctl restart sshd.service