
Yamaha RTX1300でSSH公開鍵認証を設定し、パスワード認証を無効化してみた
はじめに
筆者の自宅では、光回線用ルーターとしてYamaha RTX1300を利用しています。
ルーターの稼働状況をより詳細に可視化するため、ログや稼働情報を定期的に取得する仕組みを検討しています。RTX1300はSSH接続をサポートしていますが、デフォルトではパスワード認証です。公開鍵認証に切り替え、SSHのパスワード認証を無効化する設定を試しました。
RTXの公開鍵認証設定は一般的なLinuxサーバーとは手順が異なります。import sshd authorized-keys コマンドでの鍵インポートや、管理者モードでの実行が必要な点など、RTX固有の操作を実機で確認しました。
検証環境
| 項目 | 内容 |
|---|---|
| 機器 | YAMAHA RTX1300 (Rev.23.00.17) |
| クライアントSSH | OpenSSH 10.0p2 |
検証のゴール
- 公開鍵認証でSSH接続できること
sshd auth method publickeyでSSHのパスワード認証を無効化できること- パスワード認証無効化後もウェブGUI管理経路が維持されること
SSHサーバーの有効化
RTX1300のSSHサーバーの有効化とホスト鍵生成はウェブGUIから実施しました。本記事の検証環境ではLAN1を内部ネットワーク側として使用しているため、sshd host lan1 でSSHの待受をLAN1に限定しています。WAN側インターフェースではSSH接続を受け付けない設定とすることで、外部からの到達経路自体をなくし、攻撃面を減らします。
追加のセキュリティ強化として、接続元IPアドレスによる制限も可能です。詳細はコマンドリファレンスを参照してください。
SSH用ユーザーの作成
ウェブGUIからSSH用ユーザーを2つ作成しました。用途に応じて管理ユーザーと一般ユーザーを分けています。
| ユーザー | 権限 | 接続方法 | 用途 |
|---|---|---|---|
| SSH管理ユーザー | 管理ユーザー | SSHのみ | 設定変更 |
| SSH一般ユーザー | 一般ユーザー | SSHのみ | 監視 |
既存のウェブGUI管理ユーザー(公開鍵未登録、全接続方法許可)はそのまま残します。後述する sshd auth method publickey 設定後もウェブGUIにパスワードでログインできることを確認するためです。
以下はウェブGUIでのSSH用ユーザー追加画面です。管理ユーザー権限を付与し、接続方法はSSHのみを選択しています。

「接続を許可する端末の制限」(IPアドレスによる接続元制限)はオプションの追加設定で、本記事のスコープ外です。
クライアントで鍵ペアを生成する
クライアントでed25519の鍵ペアを生成します。管理者用と監視用で鍵を分けます。
# 管理者用
ssh-keygen -t ed25519 -f ~/.ssh/rtx1300-admin -C "admin@rtx1300" -N ""
# 一般ユーザー(監視)用
ssh-keygen -t ed25519 -f ~/.ssh/rtx1300-monitor -C "monitor@rtx1300" -N ""
各オプションの意味は以下のとおりです。
| オプション | 説明 |
|---|---|
-t ed25519 |
鍵の種類。鍵・署名のデータ長が短く処理が高速でありながら十分な安全性が期待でき、近年よく利用される |
-f |
出力ファイルパス |
-C |
コメント(用途の識別用、認証には影響しない) |
-N "" |
パスフレーズを空に設定 |
本記事では検証簡略化のためパスフレーズなし(-N "")で作成しています。自動化(監視)用途ではパスフレーズなし鍵が選択されることもありますが、管理者用鍵にはパスフレーズの設定を推奨します。パスフレーズなし鍵を使う場合は、ファイル権限(600)・保管場所・利用端末を厳格に管理してください。
実行結果:
$ ssh-keygen -t ed25519 -f ~/.ssh/rtx1300-admin -C "admin@rtx1300" -N ""
Generating public/private ed25519 key pair.
Your identification has been saved in /home/user/.ssh/rtx1300-admin
Your public key has been saved in /home/user/.ssh/rtx1300-admin.pub
作成した秘密鍵は1Password等の安全な保管先に退避しておくことを推奨します。
公開鍵をRTX1300にインポートする
SSH管理ユーザーでパスワード認証によりSSH接続し、管理者モードに昇格してから公開鍵をインポートします。
$ ssh <SSH管理ユーザー>@<RTXのIPアドレス>
Password: ********
RTX1300 Rev.23.00.17 (Fri Mar 14 10:49:46 2025)
Copyright (c) 1994-2025 Yamaha Corporation. All Rights Reserved.
> administrator
Password: ********
#
管理者モード(# プロンプト)で import sshd authorized-keys コマンドを実行し、公開鍵を登録します。
# import sshd authorized-keys <SSH管理ユーザー>
Import destination:
/ssh/authorized_keys/<SSH管理ユーザー>
Input a public key: ssh-ed25519 AAAA...(公開鍵の内容)... admin@rtx1300
Import a public key? (Y/N)Y
Import is succeeded.
同様に一般ユーザーの公開鍵もインポートします。
# import sshd authorized-keys <SSH一般ユーザー>
Import destination:
/ssh/authorized_keys/<SSH一般ユーザー>
Input a public key: ssh-ed25519 AAAA...(公開鍵の内容)... monitor@rtx1300
Import a public key? (Y/N)Y
Import is succeeded.
設定を保存します。
# save
Saving ... CONFIG0 ... Done .
Input a public key: のプロンプトで、クライアント側で生成した .pub ファイルの内容をそのまま貼り付けます。管理者用と一般用で異なる公開鍵を登録してください。
公開鍵認証での接続を確認する
公開鍵をインポートした状態で、公開鍵認証によるSSH接続を確認します。
$ ssh -i ~/.ssh/rtx1300-admin -o IdentitiesOnly=yes <SSH管理ユーザー>@<RTXのIPアドレス>
RTX1300 Rev.23.00.17 (Fri Mar 14 10:49:46 2025)
Copyright (c) 1994-2025 Yamaha Corporation. All Rights Reserved.
>
パスワードを聞かれずにログインできました。-o IdentitiesOnly=yes を付けることで、-i で指定した鍵ファイルのみを使用し、ssh-agentが保持する他の鍵が提示されるのを防ぎます。一般ユーザーも同様に公開鍵認証で接続できました。
$ ssh -i ~/.ssh/rtx1300-monitor -o IdentitiesOnly=yes <SSH一般ユーザー>@<RTXのIPアドレス>
管理ユーザーでログイン後、administrator コマンドで管理者モードに昇格できることも確認しました。
> administrator
Password: ********
#
この時点ではパスワード認証も有効
公開鍵をインポートしただけでは、SSHのパスワード認証は無効化されません。この時点ではパスワード認証も引き続き有効です。クライアント側で公開鍵認証を無効化(PubkeyAuthentication=no)し、パスワード認証経路のみで接続を試みて確認します。
$ ssh \
-o PubkeyAuthentication=no \
-o PreferredAuthentications=password \
-o PasswordAuthentication=yes \
<SSH管理ユーザー>@<RTXのIPアドレス>
Password: ********
>
パスワード認証でもログインできました。SSHログイン時のパスワード認証を無効化するには、次の手順で sshd auth method publickey を明示的に設定する必要があります。なお、管理者モードへ昇格する際の administrator コマンドのパスワード入力とは別の設定です。
SSHパスワード認証を無効化する
公開鍵認証で接続し、管理者モードに昇格してから sshd auth method publickey を設定します。
# sshd auth method publickey
#
公開鍵認証で新規接続できることを確認する
別のターミナルから、公開鍵認証で新規SSH接続が成功することを確認します。
$ ssh -i ~/.ssh/rtx1300-admin -o IdentitiesOnly=yes <SSH管理ユーザー>@<RTXのIPアドレス>
>
問題なく接続できました。
SSHパスワード認証が拒否されることを確認する
別のターミナルから、SSHパスワード認証を試みます。
$ ssh \
-o PubkeyAuthentication=no \
-o PreferredAuthentications=password \
-o PasswordAuthentication=yes \
<SSH管理ユーザー>@<RTXのIPアドレス>
<SSH管理ユーザー>@<RTXのIPアドレス>: Permission denied (publickey).
パスワード認証が拒否されました。sshd auth method publickey が正しく機能しています。
ウェブGUIの管理経路が維持されることを確認する
sshd auth method publickey はSSHの認証方式のみを制御します。ウェブGUIのパスワード認証には影響しません。
公開鍵未登録のウェブGUI管理ユーザーとしてウェブGUIにアクセスし、パスワードでログインできることを確認しました。本検証環境では、sshd auth method publickey 設定後もウェブGUIのパスワードログインに影響はなく、ウェブGUIからの管理経路を維持できました。
設定を保存する
すべての確認が完了したので、設定を保存します。
# save
Saving ... CONFIG0 ... Done .
# show config | grep sshd
sshd service on
sshd host lan1
sshd host key generate *
sshd auth method publickey
sshd host key generate * はホスト鍵が生成済みであることを示しています。
本検証環境のようにウェブGUIの管理経路を残している場合は、万が一SSH接続が通らなくなってもウェブGUIから復旧できます。シリアルコンソールが利用できる場合も復旧手段になります。
注意事項
RTX固有の操作について
- ウェブGUIで「管理ユーザー」として作成したユーザーは、
show config上で管理者属性を持つユーザーとして表示されます。本検証環境での表記はadministrator=2でした。このユーザーは公開鍵認証でログイン後もadministratorコマンドで管理者モードへ昇格できます。一方、本検証で作成した一般ユーザーでは管理者モードへ昇格できませんでした。
定期監視について
本検証環境では ssh user@rtx show log のような直接コマンド実行(exec request)では期待した結果を取得できず、対話的セッションが必要でした。定期監視には、expectなど対話的SSHセッションを扱える仕組みの利用を検討する必要があります。
一般ユーザーでも show log 等の参照系コマンドは実行できることを確認しましたが、実行できるコマンド範囲は限られます。実際の監視項目に必要なコマンドが実行可能かは別途確認してください。
まとめ
RTX1300でSSH公開鍵認証を設定し、sshd auth method publickey でSSHパスワード認証を無効化しました。RTXでは公開鍵の登録に import sshd authorized-keys コマンドを使います。一般的なLinuxサーバーの ~/.ssh/authorized_keys ファイル配置とは手順が異なります。また、公開鍵をインポートしただけではパスワード認証が無効化されず、sshd auth method publickey の明示的な設定が必要です。この設定がSSHの認証方式のみを制御する点も確認でき、本検証環境ではウェブGUIの管理経路に影響なく運用できました。








