ちょっと... というか, だいぶ前に id:hoto17296 などと一緒にEdgeRouter Xを購入していました.
EdgeRouter Xは, ネットワーク機器ベンチャーUbiquiti Networksというところが開発しているルータ製品の1つで, 安価なわりに高機能で評判... らしく, いつか遊べると良いのでは? ということで買っていたのでした.
詳しくはこちらのサイトを見て下さい. 様々な設定手順とかも紹介されていて便利です:
yabe.jp
で, 買ってから半年くらいは, 単純にルータとして使っていたのですが, 流石に勿体無いし, そろそろ本腰入れていろいろやってみるか... ということで, この土日にいろいろやっていました.
その中で幾つか知見があったので, ちまちまとではありますが, まとめて公開していこうと思います.
公開鍵を使ってログインする
EdgeRouter Xはブラウザから設定することもできますが, ssh
コマンドでEdgeRouter XにログインしてCLIで各種設定をすることもできます(EdgeRouter Xには, ネットワーク機器向けOSであるVyattaの派生版であるEdgeOSが載っています).
デフォルトだと, パスワードログインとなっていて「流石にナ〜」と思ったので, 公開鍵を使ってログインできるようにしました.
とはいえ, 概ねここに書かれている通りにやればOK: SSH login with RSA keys on Vyatta/EdgeOS
$ configure
# loadkey <user> /path/to/id_rsa.pub
# commit
# save
適当な場所(上の例では/path/to/id_rsa.pub
)に公開鍵を設置してコマンドを実行します. なお, <user>
にはその公開鍵を使いたいユーザー名を入れます.
...ちなみに直接authorized_keys
に追加した場合, ファームウェアアップデートなどで消えてしまったりするそうなので, 上記の手順で設定する必要があります.
注意点
ここで設置して読み込ませる公開鍵は, コメント部分が必要になります.
というのも, loadkey
コマンドの実装が, 公開鍵を半角スペースでsplit
したときに(このsplit
はPerlのsplit
です, なんとloadkey
を実行すると内部でPerlのスクリプトが動いていました), 3つの要素が存在しない場合エラーになるからです.
...というわけで,
ssh-rsa <...key...>
こういった形で公開鍵を用意するとダメで,
ssh-rsa <...key...> comment
このように, 適当なコメント(上記の例ではcomment
のところ)を書いた上で読み込ませる必要があります.
最初, コメントがない状態で読み込ませようとして延々とエラーになり, 20分くらいロスしました...
パスワードログインを無効にする
さて, これでEdgeRouter Xに公開鍵を使ってログイン出来るようになりました.
続いて, パスワードログインの機能を無効にしましょう.
$ configure
# set service ssh disable-password-authentication
# commit
# save
で, OKです.