iPhone で SSH 鍵を作成する
SSH 鍵を生成するのにパソコンは必要ありません。優れた iPhone 用 SSH クライアントなら、端末上で鍵ペアを作成し、秘密鍵を安全に保管し、サーバーへ導入するための公開鍵を渡してくれます。そのあとはパスワードなしで接続できます。本記事では一連の流れ ── 鍵を生成し、サーバーに公開鍵を追加し、接続する ── をすべて紹介します。スクリーンショットは TermAI を使用しています。
なぜパスワードではなく鍵を使うのか?
- より強固 ── 鍵ペアはパスワードのように総当たりで破られることがありません。
- より便利 ── 一度設定すれば、接続のたびにパスワードを入力する必要がなくなります。
- パスワードを安全に無効化できる ── 鍵が機能していれば、サーバー上でパスワードログインを完全にオフにできます。
SSH 鍵は 2 つの部分から成ります:秘密鍵(スマホに残り、決して外に出ません)と公開鍵(各サーバーへコピーします)。サーバーはこの公開鍵を使って、あなたが持つ秘密鍵を検証します。
ステップ 1 ── iPhone で鍵ペアを生成する
SSH クライアントで鍵マネージャーを開き、新しい鍵を生成します。TermAI は Ed25519 鍵ペア(モダンで短く、推奨されるデフォルト)を作成し、秘密鍵を端末のセキュアなキーストアに保存します ── 鍵はスマホ内に留まります。あとは公開鍵を表示してコピーし、サーバーに導入します。
ステップ 2 ── サーバーに公開鍵を導入する
公開鍵(ssh-ed25519 で始まる 1 行)は、サーバーの ~/.ssh/authorized_keys に入れます。方法は 3 つあります:
- すでに接続している場合はワンタップ: TermAI が鍵をサーバーへ展開してくれます ── 接続中のホストの
authorized_keysに公開鍵を自動で書き込むので、手動編集は不要です。 - まだパスワードでログインできる場合は手動で: 一度接続し、次を実行します:
mkdir -p ~/.ssh && echo "PASTE_PUBLIC_KEY" >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys - 新しい Raspberry Pi / クラウド VM の場合: 多くの環境では、プロビジョニング時に公開鍵を貼り付けられます(cloud-init、ホストの Web コンソール、または Raspberry Pi Imager)。
ステップ 3 ── 鍵で接続する
接続の認証を鍵に設定し、生成した鍵を選びます。接続すると、パスワードの入力は求められません。それでもパスワードを求められる場合は、公開鍵がまだ authorized_keys に入っていないか、ファイルのパーミッションが間違っています(600 でなければならず、~/.ssh は 700 でなければなりません)。
ステップ 4(任意)── パスワードログインを無効化する
鍵ログインが機能したら、パスワードを完全に無効化できます。サーバーの /etc/ssh/sshd_config で PasswordAuthentication no を設定し、SSH を再起動します。これで、あなたの鍵だけがログインできます。この操作の前に、別のセッションで鍵ログインをテストしてください ── 自分を締め出さないためです。
よくある質問
秘密鍵は iPhone のどこに保存されますか?
アプリのセキュアストレージ / 端末のキーチェーンの中です。鍵がスマホの外に出ることはありません ── サーバーにコピーするのは公開鍵だけです。
Ed25519 と RSA のどちらを使うべき?
サーバーが RSA しかサポートしないほど古い場合を除き、Ed25519 を使ってください。Ed25519 鍵はより短く、同等の強度でより安全とされています。
同じ鍵を複数のサーバーで使えますか?
使えます ── 1 つの公開鍵を好きなだけ多くのサーバーに導入できます。多くの人は端末ごとに 1 つの鍵を使います。
鍵を新しいスマホへ移すには?
秘密鍵をエクスポートするのではなく、新しいスマホで新たに鍵を生成し、その公開鍵をサーバーに追加します。クライアントが暗号化同期を提供している場合は、それを使う方法もあります。
クイックファクト
- タスク:iPhone から SSH 鍵を作成して使う ── パソコン不要
- 生成:アプリの鍵マネージャーで;Ed25519 を選ぶ
- 秘密鍵:スマホ内に留まる(キーチェーン);サーバーへ送るのは公開鍵だけ
- 導入:公開鍵を
~/.ssh/authorized_keysに追加(パーミッション 600) - 強化:鍵が機能したら
PasswordAuthentication noを設定
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.