alfort's Blog

Linuxエンジニアのメモ

EdgeRouterの公開鍵認証

EdgeRouterとは

業務用で高度な設定が可能なルータといえばCiscoヤマハが有名だが、とんでもなく高い。

そこで私はEdgeRouterというルーターを使っている。

www.ui.com

日本語に対応してないので英語で情報収集ができないといけない(もちろん、EdgeRouterを使っている人なら誰でも見たことがある以下のようなブログとかはすごく参考になる)とか、 あんまり情報がないというのはあるのだが、安い。

yabe.jp

一番安価なモデルであるEdgeRouter Xだと、1万ぐらいで購入できたりする。

www.ui.com

何をするのか

このルータ、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という設定用のコマンドがあるらしい。

community.ui.com

予めルータに公開鍵ファイルを転送しておき、ルータの設定を行う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にコマンドがありそうだったのでググってみたところ、以下のような記事があった。

thehomeofthefuture.com

やっぱりコマンドでできるらしい。 上記の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がなくなっているので、公開鍵認証のみ許されるようになったことがわかる

これで今回やりたいことは達成できた。