sshで公開鍵暗号を用いてパスワードなしでログインする方法

2010年2月14日

サーバーを頻繁に使う方は、sshでログインするたびにパスワード聞かれて 面倒だと思いませんか?そんなときは、公開鍵暗号を使って、パスワード入力の手間を 最小化しましょう。

仕組みは簡単で、お使いのPC上でssh-keygenというコマンドを使って 公開鍵~/.ssh/id_dsa.pubと秘密鍵~/.ssh/id_dsaを作成します。 

このうち、秘密鍵をログイン先のサーバーに~/.ssh/authorized_keysという名前で保存すれば 準備完了です。あとは、ローカルPC上で秘密鍵をssh-agentに登録するだけです。


具体的には以下のようにコマンドを実行します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ ssh-keygen -t dsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/usrname/.ssh/id_rsa): 
# 秘密鍵用のパスワードを設定しましょう。

$ scp ~/.ssh/id_dsa.pub s-mita@remotesrv:/home/usrname/.ssh/authorized_keys2

# ~/.bashrcに以下を記述することで、ターミナルが開く度に
# 1回だけパスフレーズを設定すれば良くなる。
$ eval `ssh-agent`
$ ssh-add

上記のように設定することで、ターミナルの初回起動時のみパスワード入力が求められますが、 

それ以降は、公開鍵を設置したサーバ相手ならばパスワードなしでログインできるようになります。