1.仕組み
「ssh 鍵認証 仕組み」でぐぐれば世の中の先人たちがわかりやすく解説しているので
ポイントだけまとめると以下のような感じ.
- (クライアント)秘密鍵と公開鍵のセットを生成
- (接続先サーバ)公開鍵を登録
- (接続先サーバ)クライアントからの接続を受け付け,公開鍵を用いて乱数を暗号化
- (接続先サーバ)乱数をハッシュ化
- (クライアント)受け取った乱数をハッシュ化し,ハッシュ値をサーバへ転送
- (接続先サーバ)クライアントが送信してきたハッシュ値とサーバ側で生成したハッシュ値を比較
2.設定してみる
2-1.鍵セットの生成
# -t:暗号方式の指定 -f:ファイル名の指定
ssh-keygen -t rsa -f test_rsa
2-2.公開鍵の登録
# サーバにて作業,接続するユーザを対象に実施すること
cat test_rsa.pub >> .ssh/authorized_keys
2-3.鍵認証の有効化
# vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeyFile .ssh/authorized_keys
# 強固にしたければ,パスワード認証の無効化
PasswordAuthentication no
3.接続してみる
ファイル名を指定している場合,秘密鍵を指定する必要がある.
# -i:秘密鍵の指定
ssh -i .ssh/test_rsa -p12345 hoge@hogehoge.hoge