手っ取り早い答え
パスワードではなく鍵でログインするには、あなたの公開鍵がサーバーの ~/.ssh/authorized_keys ファイルに入っている必要があります。そこに置く一番簡単な方法は ssh-copy-id です:
ssh-copy-id user@host パスワードを一度だけ尋ね、公開鍵を追記し、それ以降は鍵でログインできます。本記事では ssh-copy-id、それが使えないとき(Windows、制限付きシェル)の手動の方法、そしてスマホでのワンタップの方法を扱います。
方法 1 — ssh-copy-id(Linux/macOS)
# copies your default public key (~/.ssh/id_ed25519.pub)
ssh-copy-id user@host
# or a specific key:
ssh-copy-id -i ~/.ssh/mykey.pub user@host この一度だけパスワードでログインし、必要なら正しいパーミッションで ~/.ssh を作成し、鍵を authorized_keys に追記します。まだ鍵がない場合は、まず ssh-keygen -t ed25519 で生成してください(Ed25519 vs RSA を参照)。
方法 2 — 手動(Windows、または ssh-copy-id がない場合)
Windows には ssh-copy-id が付属しません。手作業で追記します——.pub ファイルの内容をサーバーの authorized_keys に貼り付けます:
# from any machine, one line:
cat ~/.ssh/id_ed25519.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys" Windows PowerShell では:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@host "cat >> .ssh/authorized_keys" chmod は重要です:パーミッションが緩すぎると SSH は authorized_keys を無視します。コピー後も鍵が機能しない場合は、Permission denied (publickey) を確認してください。
方法 3 — スマホでワンタップ
スマホには ssh-copy-id コマンドがなく、ファイルを SSH 経由で簡単にパイプする手段もありません。優れたモバイルクライアントが代わりにやってくれます:TermAI は端末の Keychain に Ed25519 鍵を生成し、サーバーへデプロイするアクションを備えています。これは既存の使えるログインを通じて公開鍵側を authorized_keys に書き込みます——ssh-copy-id と同じことを、ワンタップで。その後は鍵で接続し、パスワードは不要です。
うまくいったか確認する
再接続してみてください——パスワードを求められないはずです。それでも求められる場合、鍵が受け入れられていません:6 つのよくある原因(パーミッション、ユーザー違い、sshd 設定…)について SSH でまだパスワードを聞かれる を参照してください。
FAQ
SSH 鍵をサーバーにコピーするには?ssh-copy-id user@host を実行します(Linux/macOS)。Windows や制限された環境では、.pub ファイルをサーバーの ~/.ssh/authorized_keys に手作業で追記します。スマホでは、ワンタップで鍵をデプロイする TermAI のようなクライアントを使ってください。
ssh-copy-id は実際に何をするの?
パスワードで一度ログインし、あなたの公開鍵を ~/.ssh/authorized_keys に追記して正しいパーミッションを設定します。秘密鍵はあなたのマシンから決して出ません。
authorized_keys はどこにある?
ログインするユーザーのホームディレクトリ内:サーバー上の ~/.ssh/authorized_keys です。モード 600 で、700 の .ssh ディレクトリの中になければなりません。
ssh-copy-id が見つからない — 何を使えばいい?
Windows や一部の最小構成システムには存在しません。鍵を手動でパイプします:cat key.pub | ssh user@host "cat >> ~/.ssh/authorized_keys"。
クイックファクト
- ゴール:あなたの公開鍵をサーバーの
~/.ssh/authorized_keysに - 一番簡単:
ssh-copy-id user@host(Linux/macOS) - 手動 / Windows:
.pubファイルをauthorized_keysにパイプし、chmod 600/700 - モバイル:ワンタップデプロイ(TermAI)—— ssh-copy-id と同じ結果
- コピーされるのは公開鍵だけ;秘密鍵は端末に残ります
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.