トラブルシューティング

このページでは Mobile SSH のよくある問題と、サーバー側の SSH 設定を変更する前にまず確認すべき点を説明します。

接続できない

確認してください:

同じホストが別の端末で動く場合は、ホスト、ポート、ユーザー名、鍵、ネットワーク経路を正確に比較してください。

認証に失敗する

確認してください:

暗号化された秘密鍵では、パスワード/パスフレーズ欄にパスフレーズを入力します。

秘密鍵のインポートに失敗する

秘密鍵のインポートはシステムのファイル選択ツールを使います。インポートに失敗する場合:

キーボード入力が遅れる、または変わる

Mobile SSH は自動修正や予測候補をオフにしてキー入力をそのままシェルへ送るため、キーボードがリモート側に届く前にテキストを書き換えることはありません。それでもキーボードが入力を変えてしまう場合は、システムレベルの置換ツールやクリップボードツールが割り込んでいないか確認し、ESCTABCTRL、矢印、HOMEENDPGUPPGDN などのターミナルキーには追加キーの行を使ってください。

tmux のスクロールが想定どおりでない

Mobile SSH はターミナルの状態に応じてスクロールの挙動を変えます。tmux や他の代替画面プログラムでは、スクロールのジェスチャーがローカル履歴のスクロールではなく tmux のコピーモードのコマンドを送ることがあります。tmux のマウスモードが有効な場合、アプリはマウスホイールのエスケープシーケンスを送ります。

スクロールがおかしいと感じたら:

画面ロック後にセッションが切れる

Android では、Mobile SSH は keepalive、フォアグラウンドサービス、ウェイクロック、Wi-Fi ロック、再接続の試行を使って切断を減らします。それでも Android のバッテリーポリシーがバックグラウンド処理を止めることがあります。

確認してください:

iOS では、システムがバックグラウンドのアプリを一時停止するため、アプリを切り替えたり画面をロックしたりすると、素の SSH 接続を無期限に開いたままにはできません。短い猶予時間で素早いアプリの切り替えはカバーされます。それより長くなる場合は、サーバープロファイルで Auto-attach tmux session を有効にする(または Eternal Terminal トランスポートを使う)と、再接続時に中断したところと同じシェルに戻れます。

ファイル転送が端末のファイルを参照できない

Mobile SSH は Android でストレージ権限を一切求めません。代わりに、ローカルペインにはシステムのフォルダー選択ツールで許可したフォルダーが 1 つ表示されます — 空の場合は Pick folder でフォルダーを選んでください。この許可は保持されるため、一度きりの手順です。

リモートのファイルは読み込めるのにローカルが読み込めない場合、SSH 接続に問題はなく、単にまだフォルダーを許可していないだけです。

iOS ではローカル側のペインにアプリのドキュメント領域が表示され、ファイルはシステムのドキュメント選択ツールや写真選択ツールから追加します。そこへのダウンロードは、ファイルアプリの この iPhone 内 にも表示されます。

アップロードまたはダウンロードに失敗する

確認してください:

ポートフォワードに失敗する

確認してください:

デバッグログ

2 つのプラットフォームは記録する内容が異なるため、問題に合ったほうを選んでください。

Android — ターミナルと描画。 Settings → Debugging → Show Debug and Logs buttons を有効にすると、開始画面に Debug ボタンが現れます。これはターミナルイベント、SSH データのサイズ、タッチ入力、サイズ変更の挙動、トンネルのライフサイクルを記録します。記録を開始すると、入力したすべてのキー(パスワードを含む)が取得される旨の警告がまず表示されます。停止すると、アーカイブが Downloads フォルダーに書き出されます。

iOS — 接続と再接続。 Settings → Diagnostics → Record debug log をオンにします。これは接続を試みた各アドレスとその失敗理由、再接続の試行とバックオフ、切断、「peer stopped answering keepalives」、ネットワークの変化、tmux コマンドとそのエラーを記録します。Settings には行数がリアルタイムで表示されるので記録中であることを確認でき、Export Debug Log でテキストファイルとして共有できます。ログはメモリ上に保持され、対象は現在のアプリセッションのみです。

デバッグログやアーカイブは共有する前に確認してください。トラブルシューティング用であり、サーバー名、アドレス、タイミング、その他の環境の詳細 — そして Android では入力した内容そのもの — が含まれることがあります。