SSH公開鍵認証の導入を決めた経緯
これまで自宅のRTX1300へは、毎回パスワードを入力してログインしていました。
しかし、パスワード認証はさまざまな意味で脆弱なだけでなく、そもそも管理や毎回の入力が面倒に感じていました。
そこで今回、より安全で便利なSSH公開鍵認証へ切り替えることにしました。
目次
SSH公開鍵認証の導入を決めた経緯
前提条件
理由|1Password for SSHを採用した
設定手順|1Password編
設定手順|ルータ編
動作確認
まとめ
参考資料
前提条件
・現在パスワード認証でSSH接続ができていること
・ルーターの管理者モードを使えるユーザIDがあること
・1Passwordを使用していること
理由|1Password for SSHを採用した
秘密鍵をPCに保存しない、最高レベルのセキュリティ
SSHの秘密鍵を、1Passwordのエンドツーエンドで暗号化された保管庫(Vault)にのみ保存することで、PCからの鍵の盗難リスクを劇的に低減させます。万が一のPC故障や買い替え時にも、鍵を失ってルーターにアクセスできなくなる心配がありません。
Touch IDや顔認証による「パスワードレス」な快適さ
SSH接続のたびに求められる面倒なパスフレーズ入力が不要。Touch ID(指紋認証)やWindows Hello(顔認証)で、一瞬かつ安全に認証が完了するのは非常に快適です。
あらゆるデバイスで同じ鍵を使える「シームレス」な管理体験
1Passwordの強みである同期機能により、保管したSSHキーはすべてのデバイス(Mac, Windows, Linux)で即座に利用可能。複数のPCを使い分ける場合でも、面倒な鍵の移行作業なしに、手間なくSSH接続ができます。
設定手順|1Password編
STEP1|1Passwordのロックを解除する
STEP2|SSHエージェントの設定をする
設定画面を開き、開発者タブを選択した後に表示されるSSHエージェントの設定を選択する。
次に文章だけではよくわからない質問をしてきますが、青色で強調されている「キー名の使用を選択」が推奨な模様なので黙ってそれに従います。
※この選択の違いは後ほど説明します。
どちらを選択しても、~/.SSH/configの追記に関するポップアップが表示されます。
今回も特に理由がないため、青色で強調されている「自動的に編集」を選択。既にSSH/configが存在する場合は追記、ない場合はconfigファイルが新規作成されます。
以上でSSHエージェントの設定は完了。
STEP3|SSH鍵(公開鍵と秘密鍵のペア)の作成
今回は、クライアントPCのssh-keygenは使わず、1PasswordでSSH鍵を生成します。
新規アイテムの中から「SSHキー」を選ぶ。
適当な名前「YAMAHA RTX1300」を入力し、「秘密鍵を追加」を押した後、「新しい鍵を生成」を選択。
執筆時、1Passwordで生成できる鍵は「Ed25519」と「RSA」の2種類。
RTX1300のマニュアルを確認し、どちらも使用可能なので「Ed25519」の鍵を生成します。
以上でSSH鍵の作成が完了。
設定手順|ルータ編
STEP1|管理者モードを使えるユーザIDでRTX1300のコンソールにログイン
SSHコマンドで、PCのターミナルからルーターのコンソールに接続。
ssh ユーザー名@ホスト名
お馴染みのこの表示が出るので、「administrator」と入力し管理者に昇格。
RTX1300 Rev.23.00.16 (Fri Mar 7 14:31:57 2025)
Copyright (c) 1994-2025 Yamaha Corporation. All Rights Reserved.
To display the software copyright statement, use 'show copyright' command.
XX:XX:XX:XX:XX:XX - XX:XX:XX:XX:XX:XX
Memory 1024Mbytes, 8LAN
>administrator
#
STEP2|公開鍵認証に用いる公開鍵の設定
管理者モードになったら、ルーターのコンソールに次のコマンドを入力。
import sshd authorized-keys ユーザー名
公開鍵の入力が求められるので、1Passwordで作成した公開鍵をそのまま貼り付ける。
#import sshd authorized-keys ユーザー名
インポート先のファイル:
/ssh/authorized_keys/ユーザー名
公開鍵を1つ入力してください: ssh-ed25519 "以下省略"
公開鍵をインポートするかを問われるので「Y」と入力。
公開鍵をインポートしますか? (Y/N)Y
インポートしました。
最後にsaveコマンドを入力して保存。
save
これでSSH公開鍵認証の準備が全て整ったのであとは、試すのみです!!!
補足|公開鍵の設定を消すには
もし間違えて登録した場合は以下のコマンドを入力すればOK。
delete /ssh/authorized_keys/ユーザー名
動作確認
改めて、ターミナルに以下のコマンドを入力しSSH接続を試します。
ssh ユーザー名@ホスト名
これまでは、次にパスワード入力を求められていましたが、その代わりに、
1Passwordアクセスリクエストが表示されれば成功です。
あとはTouch IDを使って認証すると、ルーターのコンソールが表示されます。
ちなみに「設定手順|1Password編」の選択の違いで、以下のように表示が変化します。
「キー名を使用」を選んだ場合は設定したSSHキーの名前が表示されていて識別しやすいです。
まとめ
1Password SSH Agentを使うことで究極のセキュア接続が実現しただけでなく、利便性も大幅に向上したことを実感出来たのではないでしょうか?
今回は私のような初心者でもわかるよう、バカ真面目に記事を作成しました。
ちなみにこれが、Qiita初投稿です笑
この記事が少しでも誰かの役に立つことを願っています。
参考資料