SSHの接続を公開鍵で行う
クライアント側で、公開鍵と秘密鍵を作成する
# sud ssh-keygen -t rsa -b 4096 {-f <鍵の名前>}
sud ssh-keygen -t rsa -b 4096
# macの場合、/var/root/.ssh/に id_rsa.pub と id_rsa が作成された。
# パーミッションが大きすぎと、鍵が無視されるため、パーミッションを変更する。
sudo chmod -R 700 /var/root/.ssh
chmod 700 /var/root/.ssh/
chmod 600 /var/root/.ssh/id_rsa
公開鍵をホストに転送する。
# ssh-copy-id -i /var/root/.ssh/id_rsa.pub [ユーザー]@[ホスト名]
# 実行すると、ホストの ~/.ssh/authorized_keys に公開鍵が登録される。
sudo ssh-copy-id -i /var/root/.ssh/id_rsa.pub user@example.com
秘密鍵を使用してSSh接続
sudo ssh -i /var/root/.ssh/id_rsa useer@example.com
パスワード認証は基本無効にするが、特定のipアドレスはパスワード認証を許可する。
sudo nano /etc/ssh/sshd_config
# 最終行に追加する
PasswordAuthentication no
Match Address 192.168.0.0/16
PasswordAuthentication yes
sudo sshd -t
sudo systemctl restart ssh
ホスト側の公開鍵認証が有効化になっていない場合は、下記の設定を変更する。不要かも
sudo nano /etc/ssh/sshd_config
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
sudo systemctl restart ssh