EdgeRouterとは
業務用で高度な設定が可能なルータといえばCiscoやヤマハが有名だが、とんでもなく高い。
そこで私はEdgeRouterというルーターを使っている。
日本語に対応してないので英語で情報収集ができないといけない(もちろん、EdgeRouterを使っている人なら誰でも見たことがある以下のようなブログとかはすごく参考になる)とか、 あんまり情報がないというのはあるのだが、安い。
一番安価なモデルであるEdgeRouter Xだと、1万ぐらいで購入できたりする。
何をするのか
このルータ、SSHでログインして端末から操作できたりするのだがその認証が公開鍵認証とパスワード認証でログインできる。 一応外部からもアクセスするルーターなので公開鍵認証のみ使えるようにしようと思って調べたのでまとめる。
.ssh/authorized_keys
を書き換えてはだめなのか?
普通、公開鍵認証を通すには.ssh/authorized_keys
を書き換えればいいだけのように見える。
が、SSHでログインしてみると以下のようにファイルを書き換えしては行けないように書いてある。
$ cat .ssh/authorized_keys # Automatically generated by Vyatta configuration # Do not edit, all changes will be lost
そこでググってみると、以下のようにloadkey
という設定用のコマンドがあるらしい。
予めルータに公開鍵ファイルを転送しておき、ルータの設定を行うconfigure
コマンドを打ったうえで設定を行うと、公開鍵認証でログインできるようになった。
$ configure [edit] # load load loadkey [edit] # loadkey XXXXXX ./id_rsa.pub Done [edit] # save Saving configuration to '/config/config.boot'... Done [edit] # exit exit
パスワード認証を禁止にする
いつものLinuxのように設定ファイルを書き換えればよいのかなと思ったが、上記のようになんとなく、EdgeRouterにコマンドがありそうだったのでググってみたところ、以下のような記事があった。
やっぱりコマンドでできるらしい。 上記のStep2の通り、ログインした上で以下のコマンドを打ってあげると、パスワード認証を禁止することができた。
configure set service ssh disable-password-authentication commit save exit
Welcome to EdgeOS By logging in, accessing, or using the Ubiquiti product, you acknowledge that you have read and understood the Ubiquiti License Agreement (available in the Web UI at, by default, http://192.168.1.1) and agree to be bound by its terms. XXXXXX@192.168.0.1: Permission denied (publickey). ←passwordがなくなっているので、公開鍵認証のみ許されるようになったことがわかる
これで今回やりたいことは達成できた。