- 結構ハマりどころも多いので、ググって適当に設定しても上手くいかないことがある
- たまにしか設定しないので忘れがちで、少し調べると「あー、そうだった」なんて思うことが多い
ので一通りの手順をまとめ。
パスワード無しでログイン
- 秘密鍵と公開鍵の作成
ssh-keygenコマンドで秘密鍵と公開鍵を生成する。
$ ssh-keygen -t rsa -C "myaddress@gmail.com" Generating public/private rsa key pair. Enter file in which to save the key (~/.ssh/id_rsa): 空欄でよろしい Enter passphrase (empty for no passphrase): 任意の文字列を入力! Enter same passphrase again: もう一度任意の文字列を入力! Your identification has been saved in ~/.ssh/id_rsa. Your public key has been saved in ~/.ssh/id_rsa.pub. The key fingerprint is: 3f:dc:4e:ff:ff:ff:db:55:a3:52:ee:ee:ee:7a:64:47 myaddress@gmail.com
- id_rsa(秘密鍵)とid_rsa.pub(公開鍵)ができている。秘密と公開となっているがどちらも人の目に触れないように管理しなければいけないので勘違いしないよう注意。
$ ls id_rsa id_rsa.pub
-
パスワード無しでログインしたいサーバーに登録する。クライアント側に秘密鍵(このままでOK)、サーバーのauthorized_keysの中に公開鍵を登録するのが最終目標。
とりあえず一度ログインして、known_hostsにサーバーのキーを自動登録。
$ ssh server-01 The authenticity of host 'server01 (127.0.0.1)' can't be established. RSA key fingerprint is 3f:dc:4e:ff:ff:ff:db:55:a3:52:ee:ee:ee:7a:64:47. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'server01' (RSA) to the list of known hosts. your_name@server01's password: Last login: Thu Mar 22 16:18:31 2012 from 192.168.0.0 $ exit
-
続いてid_rsa.pubの内容をauthorized_keysに追加。
scpでコピーしておいてからログインし追記でもいいし、$ scp ~/.ssh/id_rsa.pub your_name@server01 $ ssh your_name@server01 your_name@server01's password:ここは普通にログインパスワード Last login: Thu Mar 22 16:18:31 2012 from 192.168.0.0 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
エディタで開いてコピペでもよろしい
$ vi ~/.ssh/authorized_keys
-
必ずパーミッションを変更する!クライアント側もサーバー側も、.sshは自分だけが見れる状態にするのを忘れずに!これを怠るとパスワード聞かれちゃうよ!
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/*
複数の設定を使い分ける
-
複数のサーバーがあり、別々の秘密鍵でアクセスしたい場合がある。社内や自分で用意したサーバーだけならば全て同じ秘密鍵でもいいんだけど、githubとかは別にしておきたい、とか。
さらに、ホスト名を短縮した形で登録する機能も併せ持っているので、
$ ssh 長いユーザー名@長いホスト名
なんて毎回打ちたくない人にもオススメ。
-
.ssh/configファイルに記述します。詳しくはman ssh-configを見てください。
$ vi ~/.ssh/config
Host myserver HostName long_long_host_name.localdomain.com IdentityFile ~/.ssh/id_rsa User long_long_user_name Host github HostName github.com IdentityFile ~/.ssh/id_dsa User git PreferredAuthentications publickey
-
ssh myserverだけでパスワードも聞かれずにスパーンとログインできる!
$ ssh myserver Last login: Thu Mar 22 16:48:27 2012 from 127.0.0.1 $
-
githubの接続テスト。id_dsaを使用して接続を行う!
$ ssh -T github Hi sporty! You've successfully authenticated, but GitHub does not provide shell access. $
これだけ押さえておけば特に問題ないはず。
0 件のコメント:
コメントを投稿