ssh設定
sshはすごい便利ですね。中でも気に入っているのが .ssh/config
です。一番好きな設定ファイルです。
知らない人に便利さを伝えるときにここを見ろとするために書きます。
普通のログイン
host1.example.com
にアクセスしたいときを想定します。
$ ssh <ユーザ名>@host1.example.com
初回の接続時には、以下のような確認メッセージが出ます。
The authenticity of host 'host1.example.com' can't be established. RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx. Are you sure you want to continue connecting (yes/no)?
yes
とすれば良いです。この確認メッセージはサーバの秘密鍵フィンガープリントになるのですが、もしDNSキャッシュポイズニングなどで接続先などが書き換えられて悪意のあるサーバにアクセスさせられかけたときに、あれ?フィンガープリント変わってるけど大丈夫???って聞いてくれる仕組みです。
次にパスワードが問い合わされるので答えてあげましょう。 認証が通れば晴れてログインです。
鍵認証
毎回パスワードを入力するのはセキュリティリスクが高くあまり推奨されません、それに面倒ですね。 そこで一般的には公開鍵認証というのが用いられます。公開鍵暗号の仕組みそのものはwikiに説明を譲ります。
まずは自分の秘密鍵と公開鍵を生成する必要があります。
$ ssh-keygen
すると
Generating public/private rsa key pair. Enter file in which to save the key (/home/you/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/you/.ssh/id_rsa. Your public key has been saved in /home/you/.ssh/id_rsa.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx you@your_host
このように出ます。最初の Enter file in which to save the key
では鍵の位置が聞かれていますが、デフォルトでいいでしょう。
次の Enter passphrase (empty for no passphrase)
と Enter same passphrase again
では秘密鍵に対するパスワードを問われています。
秘密鍵は名の通り秘密にしなくては行けない鍵で、万が一漏れた際には登録しているサーバに問答無用で入られてしまうので鍵をかけたほうがセキュリティは安全です。
が、面倒な場合はかけなくても良いです。そうした場合は鍵の取扱には十分注意してください。
このコマンドのあと ~/.ssh/id_rsa
と ~/.ssh/id_rsa.pub
というファイルが生成されています。
~/.ssh/id_rsa
が秘密鍵、 ~/.ssh/id_rsa.pub
が公開鍵となります。
サーバに公開鍵を配置すると、自動的に公開鍵認証が用いられます。
サーバサイドの ~/.ssh/authorized_keys
に公開鍵を追加します。
$ mv id_rsa.pub .ssh # id_rsa.pubはコピーしてきた公開鍵 $ cd .ssh $ cat id_rsa.pub >> authorized_keys
.ssh/config
~/.ssh/config
というファイルに設定を書くことで接続先に名前をつけたり、接続先固有の設定などができたりします。
例えば上の例をもとにすると、
Host host1 HostName host1.example.com User <ユーザ名>
こうすると、 ssh host1
だけで、User名とHostNameが設定されます。便利。
以下追記していく