そろそろちゃんとsshの設定をしよう
と思いたった。
きっかけ
と、いうのも、未だに
ssh yota@example.ie.u-ryukyu.ac.jp
のように直打ちなので。
ちょっとそろそろださいだろう、と。
ctrl-r 使ってるとは言ってもね。
C-r で [host]
をちょっと書いたらすぐ出てくるんで便利に感じてそのままでした。
alias設定すりゃいいだけじゃね
とか思う人もいるかもしれないけど、今回はaliasしません。
多分もっと便利。うん。
やること
やることは、「RSA keyの登録」と 「ssh-agent」と「~/.ssh/config」
知ってる人は読む必要ないはず。
RSA keyの生成
ユーザ:yota
RSAkeyの名前:example
公開鍵を置くサーバ:example.ie.u-ryukyu.ac.jp
でやっていく
[bash]
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yota/.ssh/id_rsa): example
Enter passphrase (empty for no passphrase):
[RSAkeyを使うためのpassphrase]
Enter same passphrase again: [上の確認用]
Your identification has been saved in yota.
Your public key has been saved in example.pub.
The key fingerprint is:
なんか表示される
The key’s randomart image is:
なんか表示される
[/bash]
ssh-copy-idとかは今回なし。
exampleにはサーバのhost名とか使ったりしてる。
今回は例として、example.ie.u-ryukyu.ac.jp の example
公開鍵のアップロード
生成されたexample.pubをサーバにアップロード
[bash]
$ scp example.pub yota@example.ie.u-ryukyu.ac.jp:~/
$ ssh yota@example.ie.u-ryukyu.ac.jp
[example.ie]$ cat example.pub >> .ssh/authorized_keys
[example.ie]$ rm example.pub
[example.ie]$ exit
$
[/bash]
これでとりあえず公開鍵はをサーバに設置は完了
authorized_keysのパーミッションは600
.ssh は700
configの編集
次はローカルで
~/.ssh/config
の設定
[bash]
$ vim ~/.ssh/config
Host aiueo <-ここは一意であればなんでも良い
User yota
Hosname example.ie.u-ryukyu.ac.jp
identityfile ~/.ssh/example
[/bash]
~/.ssh/configって結構設定いろいろできるので気になる人はググってみましょう。
Portとか指定できます。
ssh-agentの起動
Mac OS X の場合は、ssh すると勝手に起動してくれる。
ssh-agent の動作は「 passphrase
のキャッシュ」かな、と。調べてないけどそれっぽい。
Terminal 落としても ps
動きっぱなしだったので、Mac自体が落ちると止まるのかな?
と、いうわけで Mac の場合は1回入力するとそれ以降は passphrase
の入力は求められません。
Linuxとかの場合は
[bash]
$ eval `ssh-agent`
Agent pid 16246
$ ssh-add example
Enter passphrase for /home/yota/.ssh/example:
[/bash]
とかかな。ローカル側で。
鍵が増えると、ssh-addし直さないといけないはず。
セキュリティ考えるなら、
[bash]
$ killall ssh-agent
[/bash]
とかを logout 時に実行するようにしてあげる。
ssh-agent を落とすと、次回はまた $ eval `ssh-agent`
からやることになります。
便利な点
と、いうわけで便利な点の紹介
まず、ssh から
[bash]
$ ssh example
[/bash]
だけで入れるようになります。
もちろんパスワード無し。
~/.ssh/config
を充実させれば、いろいろできます。
最後にできれば書く。
scpだって
[bash]
$ scp test.txt example:~/
[/bash]
なんてことができます。
もちろんパスワード無し。
gitだって
[bash]
$ git clone example:[repositoryのパス]
[/bash]
でいけます。
もちろんパスワード無し。
とにかく ssh 使う感じのものは便利に。
もっと便利なことあるかもしれないので、見つけた人は連絡くれると嬉しいです。
フォワーディングとか超便利。
シスカン的にはもう是非マスターしたい。
ssh config
そんなわけで、.ssh/config の便利さがちょっとでも伝われば。
Host
で区切ればいろんなことできますよ。
下記は参考サイト
http://superbrothers.hatenablog.com/entry/20090730/1248971671
この記事書いたあとこんなの見つけた
http://d.hatena.ne.jp/tkng/20110225/1298596697
充実したsshライフを
多分ちょっとずつ追記・修正していくと思います。