はじめに
NVIDIA Jetson環境のセットアップ中、PCからSSH接続を試みた際に Permission denied (publickey) となり、パスワード入力すら受け付けてもらえない状況に陥りました。
通常、実機にモニターとキーボードを繋いで設定変更すれば済む話ですが、「手元に周辺機器がない」「本体のみで運用している」といった場合には詰んでしまいます。
今回は、USBケーブル1本でJetsonの内部にアクセスし、SSH設定を修正して復旧させた手順を共有します。
環境
- ターゲット: NVIDIA Jetson (L4T)
- ホストPC: Windows 10/11
- 接続: USB ケーブル(※必ずデータ通信対応のものを使用)
- 使用ソフト: Tera Term (または PuTTY)
発生したエラー
SSH接続時に以下のログが表示され、パスワード認証が試行されない。
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
user@jetson_machine: Permission denied (publickey).
解決までのフロー
1. COMポートの特定
- Jetsonの USB-Cポート とPCを接続する。
- Windowsの「デバイスマネージャー」を開く。
- 「ポート (COM と LPT)」を確認し、認識されている USB シリアル デバイス (例: COM7) の番号を控える。
memo: デバイスが表示されない場合は、ケーブルが充電専用でないか確認してください。
2. Tera Termによるシリアル接続
SSHの設定(sshd_config)に依存しない、ハードウェア直結の「シリアルコンソール」機能を利用します。
- Tera Termを起動し、シリアル(Serial) を選択。ポートに先ほどの COM7 を指定。
- [設定(Setup)] > [シリアルポート(Serial port)] から以下の通り設定。
- スピード (Baud rate): 115200
- データ: 8 bit
- パリティ: none
- ストップビット: 1 bit
- フロー制御: none
- 接続直後は画面が真っ暗なことが多いため、
Enterキーを数回叩く。 - ログインプロンプト(
login:)が表示されたら、ユーザー名とパスワードを入力してログイン。
3. SSH設定の修正
無事にログインできたら、パスワード認証を許可するよう設定を書き換えます。
# SSH設定ファイルの編集
sudo nano /etc/ssh/sshd_config
以下の項目を修正します。
# 修正前:パスワード認証が禁止されている
PasswordAuthentication no
# 修正後:パスワード認証を許可
PasswordAuthentication yes
※行頭に # が付いている場合は削除して有効化してください。
4. 設定の反映
# 保存: Ctrl + O -> Enter / 終了: Ctrl + X
# SSHサービスの再起動
sudo systemctl restart ssh
結果
ホストPCのターミナルから、再度SSH接続を試みます。
ssh user@jetson_machine.local
# 無事にパスワード入力プロンプトが表示されればok
まとめ
JetsonのSSH設定が「公開鍵限定」になっていても、USBケーブルで直結してシリアルコンソールを使えば、モニター等の物理デバイスなしで復旧が可能でした。