より安全性を高めるため、パスワードでなく公開鍵によるSSH接続をするための設定を備忘録としてここにメモする。なお、クライアントはWindows PC、サーバはLinuxを想定している。はじめにクライアント上で以下のコマンドにより公開鍵と秘密鍵の鍵ペアを生成する。
$ md C:\Users\YourName\.ssh
$ cd C:\Users\YourName\.ssh
$ ssh-keygen -t rsa -b 4096 -f "id_rsa" -N ""
上記コマンドを実行すると以下のファイルがそれぞれ作成される。
  • 秘密鍵・・・id_rsa
  • 公開鍵・・・id_rsa.pub
次に公開鍵をサーバにコピーする。コピーする場所は、サーバのログインするユーザのホームディレクトリを起点とする以下である。
  • .ssh/authorized_keys
サーバにおいてパスワードによるSSH接続を無効にする。/etc/ssh/sshd_configに対して以下の設定をする。
  • 変更前
    #PasswordAuthentication yes
  • 変更後
    PasswordAuthentication no
上記の設定を反映するため、以下のコマンドでsshデーモンを再起動する。
$ sudo systemctl restart ssh