まるまるこふこふ

数々の次元が崩壊し、全ての生命が塵と化すのを見てきた。私ほどの闇の心の持ち主でも、そこには何の喜びも無かった。

ServersMan@VPSを使う - 4日目

今日はsshログインの際に公開鍵認証を使って
ログインするようにします。

TeraTermを使います。

鍵の生成


鍵をサーバに保存

公開鍵をサーバに保存します。
秘密鍵でないのは、ネットワーク上に秘密鍵が流れるのが危険だからです。
(一応ssh上なので暗号化されているといえばされているのですが。)

普通にsshでログインします。まだこの段階では共通鍵での認証です。

まずユーザのホームディレクトリに移動します。

$ cd ~

SCPを使って公開鍵をサーバに保管します。

公開鍵を ~/.ssh/authorized_keys に移動します。

$ mkdir .ssh
$ chmod 700 .ssh
$ mv id_rsa.pub .ssh/authorized_keys

公開鍵方式での認証のみ受け付ける

まだ公開鍵方式では認証できません。
sshd(sshサーバー)の config を設定します。

$ su
Password:
$ vi /etc/ssh/sshd_config
# 公開鍵認証を行うか否か
PubkeyAuthentication yes ←コメント解除

# 公開鍵がどこに保存されているか
AuthorizedKeysFile     .ssh/authorized_keys ←コメント解除

# 共通鍵認証を行うか否か
PasswordAuthentication no ←変更

これで共通鍵方式での認証を禁止し、公開鍵方式での認証のみを許可する設定にしました。
認証に使う公開鍵は ~/.ssh/authorized_keys を使います。

teratermでログインの際、ここから自分のPCに保存した
秘密鍵を使って認証します。

終わり

今回は、共通鍵暗号を一切禁止し、公開鍵暗号のみを許可したこと、
そして1ユーザにしか公開鍵暗号の設定をしていないので、
他にsshでログインするユーザがいれば、その人も秘密鍵・暗号鍵をまた別に作って
その人のユーザディレクトリの .ssh/authorized_keys に保存する必要があります。