色んなサーバーにログインする機会が増えたので.ssh/configを書いてみた

最近、ログインして作業するサーバーが増えてきました。増える分にはいいんですが、微妙にユーザー名が違うサーバーがいくつかあって、いちいちusername@hostって書くのが面倒くさくなってきました。なので.ssh/configを書いて楽をすることにしました。

方法

$ vi .ssh/config
ServerAliveInterval 60

Host dev.example.com
    User foo
Host git.example.com
    User bar
    IdentityFile ~/.ssh/id_rsa_typea
Host example.org
    User baz
    IdentityFile ~/.ssh/id_rsa_typec

流石に使ってるのをそのまま書くわけにはいかないので、例としてこんな感じです。IdentityFileで使う秘密鍵も接続先ホストによって切り替えられます。

さらに楽するために

$ pwd
/home/myuser
$ touch dev.example.com
$ touch git.example.com
$ touch example.org

上記の様に、ファイル名がホスト名な空ファイルを、自分のホームディレクトリに作りました。こうしておくと、$ ssh deくらいでTabを押せば$ ssh dev.example.comまで補完してくれます。もちろん、カレントがホームならですが。ただ、.ssh/configで長いホスト名に短い名前を付けることも出来るらしいので、そっちでやれって話かもしれません。

.ssh/configのテクニックはsshを使いこなすための7つの設定 - 射撃しつつ前転 改を参考にしました。ここでは自分が使ったとこだけしか書いてないので、詳しくはそっちを見てください。