公開鍵認証で安全にsshログインする

sshでログインするには大きく分けて2つの方法があります。

パスワード認証

ユーザネーム+パスワード

公開鍵認証

ユーザネーム+公開鍵+パスフレーズ(必要であれば)

 特定の端末からのみアクセスを許可しているのならパスワード認証で問題ありませんが不特定の場所から(外出先などから)ログインを許可する場合はどこのIPからアクセスされるか分かりません。 この場合安全に正規のユーザにログインしてもらう場合に公開鍵認証を利用すると安全にログインさせる事が出来るようになります。

SSHプロトコルversion2を使って公開鍵認証する

DSA鍵を生成します

途中パスフレーズを聞かれるので必要があれば設定して下さい。それ以外は[Enter]で構いません。

Local$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/username/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/username/.ssh/id_dsa. Your public key has been saved in /home/username/.ssh/id_dsa.pub. The key fingerprint is: 9b:58:72:29:36:6c:9c:b7:a9:70:9d:60:cd:03:ef:23 username@localhost The key's randomart image is: +--[ DSA 1024]----+ | | | | | . | | o * . | | % S | | + % B | | . E X | | o o . | | . | +-----------------+

以下2つの鍵が作成されます

-公開鍵:/home/username/.ssh/id_dsa.pub -秘密鍵:/home/username/.ssh/id_dsa

公開キーをリモートホストにコピーします。

今作成した公開鍵の方をリモートにあるログインしたい端末にscpを使って安全に送ります。

Local$ scp ~/.ssh/id_dsa.pub username@remorthost:

authorized_keys2 ファイルを生成します

リモートホストにログイン(今はパスワードを使ってログイン)しauthorized_keys2ファイルに先ほど送った公開鍵の内容を書きます。

内容を書き終わったら送ったid_dsa.pubは必要ないので削除して下さいね。

Local$ ssh username@remorthost
Remort$ mkdir .ssh
Remort$ chmod 700 .ssh/
Remort$ cd .ssh/
Remort$ touch authorized_keys2
Remort$ chmod 600 authorized_keys2
Remort$ cat ~/id_dsa.pub >>authorized_keys2
Remort$ rm ~/id_dsa.pub

ログイン出来るか確認します

公開鍵を作成する際にパスフレーズを設定しなかった場合はパスフレーズを入力することなくログインすることが出来ます。

Remort$ logout
Local$ ssh username@remorthost
Remote$ 
created:

Back to top