そろそろちゃんと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ライフを

多分ちょっとずつ追記・修正していくと思います。