パスワードなし SSH を 3 ステップで設定する
「パスワードなし」SSH とは、セキュリティがないという意味ではありません ── 毎回パスワードを入力する代わりに鍵でログインするということです。より便利で、より安全でもあります。3 ステップ:鍵ペアを生成する、公開鍵をサーバーにコピーする、そして(任意で)パスワードログインを無効にすることで鍵だけが使えるようにします。以下が全体の流れです。
ステップ 1 — 鍵ペアを生成する
お使いのマシンで Ed25519 鍵を作成します(モダンで、速く、安全 ── Ed25519 vs RSA を参照):
ssh-keygen -t ed25519 -C "[email protected]" Enter を押してデフォルトの場所を受け入れます。パスフレーズの入力を求められます ── これはディスク上の秘密鍵を暗号化します。真のワンステップログインのために空のままにすることもできますが、パスフレーズと ssh-agent を組み合わせれば、安全性と利便性の両方が得られます。これにより 2 つのファイルが作成されます:id_ed25519(秘密鍵 ── 決して共有しない)と id_ed25519.pub(公開鍵 ── サーバーに置く)。
ステップ 2 — 公開鍵をサーバーにコピーする
公開鍵の側は、サーバーの ~/.ssh/authorized_keys になければなりません。簡単な方法は:
ssh-copy-id user@host この最後の一度だけパスワードを尋ねられ、鍵がインストールされます。(ssh-copy-id がない、または Windows をお使いですか?鍵コピーの完全ガイドを参照してください。)では再接続を ── ssh user@host でパスワードなしでログインできるはずです。まだ尋ねられる場合は、SSH がまだパスワードを要求するを参照してください。
ステップ 3 — パスワードログインを無効にする(任意、推奨)
鍵ログインが機能したら、パスワードを完全に無効にして総当たり攻撃を無意味にできます。サーバーの /etc/ssh/sshd_config で:
PasswordAuthentication no
PubkeyAuthentication yes その後 sudo systemctl restart ssh を実行します。重要:切断する前に、別のセッションで鍵ログインが機能することを確認してください ── そうしないと、ミス一つで自分自身を締め出してしまう可能性があります。これを root ログインの無効化 と fail2ban と組み合わせれば、堅実なベースラインになります。
なぜ鍵がパスワードに勝るのか
鍵は 256 ビットの秘密で、決してサーバーには渡りません ── 渡るのは署名だけ ── ですから、通信路上でフィッシングや総当たりの対象になるものは何もありません。パスワードは推測できますし、ボットは毎日数百万ものパスワードでポート 22 を叩きます。鍵のみの認証では、そうした試行は成功しようがありません。トレードオフの詳細は:SSH 鍵 vs パスワード。
スマホからのパスワードなし SSH
同じモデルはモバイルでも機能し、優れたクライアントはそれを一つの流れにします:TermAI はデバイスの Keychain 内で Ed25519 鍵を生成し、ワンタップのサーバーへのデプロイで公開鍵を authorized_keys にインストールします ── ターミナルなしでステップ 1 と 2 が完了します。その後は鍵で接続し、タッチキーボードでパスワードを入力する必要はありません。
よくある質問
パスワードなし SSH はどう設定しますか?ssh-keygen -t ed25519 で鍵を生成し、ssh-copy-id user@host で公開鍵をサーバーにコピーして再接続します ── 鍵でログインでき、パスワードは不要です。任意で sshd_config でパスワード認証を無効にします。
パスワードなし SSH は安全ですか?
パスワードより安全です ── 鍵はネットワークを越えないので、フィッシングや総当たりの対象になりません。パスワード認証を完全に無効にすれば、総当たりの試行は不可能になります。
鍵にはパスフレーズを付けるべきですか?
理想的には、はい ── それはディスク上の秘密鍵を暗号化します。ssh-agent を使えば、セッションごとに一度入力するだけで、ワンステップのログインを維持できます。
パスワードを無効にすると締め出されますか?
鍵ログインが先に機能していなかった場合のみです。パスワード認証を無効にする前に、必ず別のセッションで鍵でログインできることを確認してください。
クイックファクト
- 3 ステップ:鍵を生成 → 公開鍵をサーバーにコピー →(任意)パスワード認証を無効化
- 生成:
ssh-keygen -t ed25519 - インストール:
ssh-copy-id user@host - 堅牢化:sshd_config に
PasswordAuthentication no(鍵ログインの動作を確認してから) - モバイル:ワンタップで生成+デプロイ(TermAI)、その後は鍵ログイン
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.