SSH

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

コメントする