1.

TeraTerm SSH 公開鍵接続完全ガイド(鍵生成・authorized_keys 配置・Pageant 連携)

編集
この記事の要点
  • TeraTerm の SSH 公開鍵認証は「設定 → SSH 鍵生成」で鍵ペアを作り、公開鍵をサーバの ~/.ssh/authorized_keys に追記して接続するのが標準フロー
  • 鍵タイプは Ed25519(推奨)または RSA 2048bit 以上、パスフレーズは必ず設定する
  • サーバ側は ~/.sshchmod 700authorized_keyschmod 600 にしないと sshd が無視する
  • 接続時は SSH 認証ダイアログで「RSA/DSA/ECDSA/ED25519 鍵を使う」を選び、秘密鍵ファイル (id_ed25519) を指定 + パスフレーズ入力
  • 複数サーバを使うなら Pageant 互換のエージェント (TTSSH) を活用するとパスフレーズ入力を 1 回に集約できる

パスワード認証と公開鍵認証の違い

SSH の認証方式は大きく 2 種類あります。本番サーバや SSH 鍵運用の標準は公開鍵認証です。

項目パスワード認証公開鍵認証
サーバに渡すものパスワード文字列署名(秘密鍵で作成)
ブルートフォース耐性低(辞書攻撃対象)事実上不可能
運用定期変更が手間鍵を 1 度配置で済む
多サーバ対応サーバごとに別パスワード同じ鍵で多数のサーバ
パスフレーズ秘密鍵を暗号化する 2 段防御

手順1: TeraTerm で SSH 鍵ペアを生成

TeraTerm のメニュー 「設定 (Setup)」→「SSH 鍵生成 (SSH KeyGenerator)」を開き、鍵タイプを選びます。

TeraTerm SSH 鍵生成ダイアログ
鍵タイプ推奨度備考
Ed25519★★★最新・短く高速・安全。OpenSSH 6.5+ で対応
ECDSA★★NIST 曲線、Ed25519 の代替
RSA 4096bit★★幅広い互換性、若干鍵が大きい
RSA 2048bit下限ライン、新規には Ed25519 推奨
DSA / RSA 1024×非推奨、最新 OpenSSH では拒否される

「生成」ボタンを押すと鍵ペアが作成されます。鍵のパスフレーズ欄に必ずパスフレーズを入力してください(空にすると秘密鍵盗難時にそのまま使われます)。

TeraTerm SSH 鍵生成 パスフレーズ設定

鍵が生成できたら、「公開鍵の保存」「秘密鍵の保存」を順に押して、安全な場所(例: C:\Users\YOU\.ssh\)に保存します。

  • 公開鍵: id_ed25519.pub または id_rsa.pub (サーバに置く)
  • 秘密鍵: id_ed25519 または id_rsa (絶対に外に出さない、共有しない)

手順2: サーバへ公開鍵を配置

サーバに SSH ログインし、ユーザーのホームディレクトリに .ssh ディレクトリを作り、authorized_keys に公開鍵を追記します。

サーバの ~/.ssh/authorized_keys に公開鍵を追記
# サーバにパスワードでログイン
ssh user@example.com

# .ssh ディレクトリ作成
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# 公開鍵を貼り付け(id_ed25519.pub の内容 1 行)
vi ~/.ssh/authorized_keys
# ssh-ed25519 AAAAC3Nz...== your-name@PC

chmod 600 ~/.ssh/authorized_keys

# パーミッション確認
ls -la ~/.ssh
# drwx------ 2 user user  4096 .
# -rw------- 1 user user   100 authorized_keys

権限はとても重要です。chmod 700 ~/.ssh / chmod 600 ~/.ssh/authorized_keys 以外の権限(特に group / other に書き込み可)だと、sshd は安全でないと判断し鍵認証を無視します。

ssh-copy-id(Linux/macOS のクライアントなら一発)

# Linux / macOS のクライアントから(TeraTerm を使わずに鍵を配置)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@example.com

# Windows でも OpenSSH (Win10 1803+) があれば使える

手順3: TeraTerm から公開鍵認証で接続

TeraTerm を起動し「新しい接続」ダイアログでホスト名・ポート (22) を入力。続く SSH 認証ダイアログで以下を設定します。

TeraTerm SSH 認証ダイアログ(公開鍵認証)
  1. ユーザー名: サーバのアカウント名(例: ubuntu / ec2-user / root
  2. パスフレーズ: 鍵生成時に決めたフレーズ(パスワードではない)
  3. 認証方式: 「RSA/DSA/ECDSA/ED25519 鍵を使う」を選択
  4. 秘密鍵ファイル: 「...」ボタンから id_ed25519 等を指定
  5. OK で接続

成功するとサーバのプロンプトが出ます。失敗時はパスフレーズ間違い、鍵ファイル不一致、サーバの権限不正のいずれかです。

手順4: Pageant / TTSSH エージェントでパスフレーズ入力を 1 回に

毎回パスフレーズを入力するのは面倒です。Pageant(PuTTY 付属のエージェント)または TeraTerm 内蔵のSSH 認証エージェントを使うと、鍵をメモリに常駐させ、以後の接続でパスフレーズ入力を省略できます。

Pageant / TTSSH エージェント 鍵追加
  • Pageant: PuTTY 公式から pageant.exe を入手 → 起動 → タスクトレイで「Add Key」
  • TeraTerm のエージェント転送: SSH 認証ダイアログで「エージェント転送する」にチェック → 経由先サーバから更に SSH する際もパスフレーズ不要
  • SSH 認証ダイアログ「Pageant を使う」を選べる(Pageant 起動時のみ)

サーバ側の sshd 設定

サーバ側(/etc/ssh/sshd_config)で公開鍵認証が有効か、最終的にはパスワード認証を無効化しておくのが安全です。

# /etc/ssh/sshd_config
PubkeyAuthentication yes              # 公開鍵認証を許可(既定 yes)
AuthorizedKeysFile  .ssh/authorized_keys

# 鍵運用が回ったらパスワード認証を無効化(推奨)
PasswordAuthentication no
ChallengeResponseAuthentication no

# root 直接ログイン禁止
PermitRootLogin prohibit-password    # 鍵ならOK / no で完全禁止

# 反映
# sudo systemctl restart sshd

パスワード認証を切る前に、必ず別セッションを開いて鍵で入れることを検証してください。閉じてしまうと締め出されます。

うまく繋がらないときのトラブルシューティング

症状原因対処
パスワード入力に落ちるサーバが鍵を見つけられないchmod 700 ~/.ssh / 600 authorized_keys / SELinux なら restorecon
Permission denied (publickey)鍵が違う / 公開鍵未配置サーバの authorized_keys と TeraTerm の秘密鍵を再確認
パスフレーズ間違い正しいパスフレーズで再試行、忘れたら鍵再生成
鍵フォーマットエラーOpenSSH 形式と PuTTY 形式の混在TeraTerm は OpenSSH 形式 OK。PuTTY .ppkputtygen で変換
サーバログに何も出ないそもそも sshd まで届いていないセキュリティグループ / firewalld / 22 番ポート開放確認

サーバログで原因切り分け

# サーバ側でリアルタイム監視
sudo tail -f /var/log/auth.log         # Debian/Ubuntu
sudo tail -f /var/log/secure           # CentOS/RHEL

# よく出るメッセージ
# Authentication refused: bad ownership or modes for directory /home/user/.ssh
#   → ~/.ssh の権限を 700 に
# Failed publickey for user from 10.0.0.1
#   → 鍵が一致しない / authorized_keys に未登録
# error: AuthorizedKeysCommand /usr/sbin/foo failed
#   → コマンドベース鍵取得(IAM 連携など)が壊れている

セキュリティのベストプラクティス

  • パスフレーズは必須。秘密鍵流出時の最後の砦
  • 秘密鍵はクラウドストレージ / Slack / メール添付禁止。社内 PC を変える場合は USB か再生成
  • 1 ユーザ 1 鍵。共有鍵は誰が使ったか追えない
  • 退職者が出たら該当公開鍵を authorized_keys から削除
  • fail2ban / sshguard で短時間に大量試行する IP をブロック
  • SSH ポート 22 を別番号に変える「ポート変更」は気休めだが攻撃ログのノイズ削減には有効

FAQ

Q: パスフレーズと SSH パスワードはどう違いますか?
A: パスフレーズは秘密鍵ファイルを暗号化する鍵で、クライアント側でのみ使用されます。サーバには送られません。SSH パスワードはサーバ側のユーザパスワードで、ネットワークを経由します。

Q: 同じ秘密鍵を複数サーバで使い回しても安全?
A: 一般的には OK ですが、セキュリティ境界が違う環境(本番と検証、社内と社外)では分けるのが推奨です。1 つの鍵流出で全部入られないように。

Q: TeraTerm の鍵を WinSCP / PuTTY でも使いたい
A: TeraTerm の秘密鍵は OpenSSH 形式。PuTTY 系は .ppk 形式。puttygen.exe で「Load 既存秘密鍵」→「Save private key」で変換できます。

Q: 鍵の指紋 (fingerprint) を確認したい
A: ssh-keygen -lf ~/.ssh/id_ed25519.pub でフィンガープリント表示。サーバ側 authorized_keys でも同じコマンドで確認可能。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. サーバーへの公開鍵によるSSH接続方法
  2. 自動接続設定
  3. エラー一覧

最近更新/作成されたページ