sshでパスワードなしでログインする

sshでは.rhostsを書いて信用できるホストからのログインを許すということもできますが、公開鍵をつかってより安全にパスワードなしでログインすることができる・・・というのは知ってるんですが、やったことないので、とりあえずmanを参考に試してみました。

以下そのメモ(最近忘れっぽいので)です。

1)秘密鍵と公開鍵の生成
ssh-keygen -t rsa


これで.ssh/id_rsa(秘密鍵)と .ssh/id_rsa.pub(公開鍵)ができます。聞いてくるパスフレーズには何もいれないでおきます。

2)ログインするサーバの.ssh/authorized_keysに1)で作った公開鍵をコピーする。
(行単位でコピーすればよい)

3)sshでサーバにログインする。パスワードを聞いてこなければ成功です。

DSAを使いたければssh-keygenのオプションをrsaのかわりにdsaとすればOK。

ssh1でログインしたいときは、rsa1と指定してファイルを鍵のペアを作ればOK。

認証方法は次のとおり

1)クライアントがサーバに公開鍵を使って接続を試みる
2)サーバは公開鍵が許可されたものであれば(authorized_keysにあるものであれば)ランダムな数字を生成し公開鍵を使って暗号化しクライアントに送る
3)クライアントは秘密鍵を使って暗号を解き、サーバに自身が秘密鍵をもっている正当なユーザであることを通知する

当然のことながら秘密鍵は秘密にしておきましょう。

コメント一覧

ssh-keygen には -t option をつけないといけないのと、訊いてくるpassphraseには空のままEnterを押さないといけないというのも書いておいた方がいいような気がします。
sarumaru

ご指摘どうもありがとうございます。さっそく修正しておきました。 -tは完全に写し取るとき忘れてました。_| ̄|○
Issei