【Linux】SSHの鍵方式を設定してログインを制限する
今までやろうと思ってやらなかった設定。社内からのアクセスのみに制限したい場合はIP制限の方が簡単。やり方は前の記事を参考に。
外部からのアクセスをコントロールしたい場合は鍵方式に変更する。公開鍵暗号方式を詳しく知りたい場合はwikipediaを読む。
環境はCentOS 5.3、クライアントはTera Term
まずはSSHサーバーの設定ファイルを編集してパスワードでログインするのを禁止する。
# vi /etc/ssh/sshd_config
PasswordAuthentication no
# /etc/rc.d/init.d/sshd restart
サーバー側で秘密鍵と公開鍵を作成する。
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):(Enter)
Enter passphrase (empty for no passphrase):(パスフレーズを入力)
Enter same passphrase again:(もう一度)
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
ホームディレクトリに.ssh/id_rsa(秘密鍵)とid_rsa.pub(公開鍵)が作成された。公開鍵を設定する。
# cd .ssh/
# cat id_rsa.pub >> authorized_keys
# chmod 600 authorized_keys
# rm -f id_rsa.pub
authorized_keysは固定。秘密鍵をクライアントに持ってくる。
あとはこの秘密鍵を使ってクライアントからアクセスしてみる。
ポート(フォイヤーウォール)の設定を忘れずに。hosts.denyしている場合はそっちの設定も忘れずに。
ちなみに鍵の生成はTera Termを使っても出来る。Poderosaを使っている場合はこちらのサイトを参考に。
鍵の種類は「RSA2」。鍵を生成した後は公開鍵だけサーバーにコピーしてさっきと同じように設定する。
こっちの方が秘密鍵をネットワーク越しに移動しないので安全。
Tera Termを使う理由はファイルの移動が簡単にできるから。
<関連記事>