タイトル: Cygwinを使用したSSH接続方法
SEOタイトル: Cygwin で SSH 接続する方法(OpenSSH インストール / 鍵生成 / config 設定 完全ガイド)
| この記事の要点 |
|
Cygwin とは
Cygwin は Windows 上でPOSIX 互換の Unix ライクな環境を実現するソフトウェア群です。Linux/macOS で慣れ親しんだ bash / ssh / grep / vim などのコマンドを Windows のコマンドプロンプトの代わりに使えるようになります。
本記事では Cygwin に OpenSSH を導入して、リモートサーバへ SSH 接続するまでの手順をまとめます。
1. Cygwin のインストール
- 公式サイトから
setup-x86_64.exeをダウンロード - インストーラを起動し、「Install from Internet」を選択
- インストール先(既定:
C:\cygwin64)とローカルパッケージディレクトリを指定 - ミラーサイトを選択(日本なら
ftp.iij.ad.jpなど) - Select Packages 画面で検索欄に
opensshと入力し、netカテゴリの openssh を「Skip」から最新バージョンに変更 - 依存関係を確認して「Next」→ インストール完了
インストール後、デスクトップにできた Cygwin64 Terminal を起動します。
2. SSH コマンドの確認
# バージョン確認
$ ssh -V
OpenSSH_9.x, OpenSSL ...
# どこにインストールされたか
$ which ssh
/usr/bin/ssh
これで Linux と同じように ssh user@host で接続できます。
3. SSH 鍵の生成
パスワードの代わりに公開鍵認証を使う場合、Cygwin ターミナルで鍵を生成します。
# Ed25519(推奨)
$ ssh-keygen -t ed25519 -C "your-email@example.com"
Enter file in which to save the key (/home/user/.ssh/id_ed25519): [Enter]
Enter passphrase: ********
Enter same passphrase again: ********
# 生成された鍵を確認
$ ls -la ~/.ssh/
-rw------- id_ed25519 ← 秘密鍵(外部に絶対渡さない)
-rw-r--r-- id_ed25519.pub ← 公開鍵(サーバへ登録)
パスフレーズは秘密鍵自体を暗号化するパスワードです。空でも動きますが、PC 紛失時のリスクを下げるため設定推奨。
4. 公開鍵をサーバへ登録
接続先サーバの ~/.ssh/authorized_keys に、生成した公開鍵を追加します。
# 一発で登録する(パスワード認証が有効な場合)
$ ssh-copy-id user@server.example.com
# 手動で登録する場合
$ cat ~/.ssh/id_ed25519.pub | ssh user@server.example.com \
"mkdir -p ~/.ssh && chmod 700 ~/.ssh && \
cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
5. SSH 接続
# 鍵認証で接続
$ ssh user@server.example.com
# ポート / 鍵ファイルを指定
$ ssh -p 2222 -i ~/.ssh/id_ed25519 user@server.example.com
6. ~/.ssh/config で接続を短縮
頻繁に接続するサーバは ~/.ssh/config にエイリアスを書いておくと便利です。
# ~/.ssh/config
Host prod
HostName server.example.com
Port 2222
User deploy
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
Host bastion
HostName bastion.example.com
User ops
ForwardAgent yes
これで ssh prod だけで接続できます。
トラブルシューティング
| 症状 | 原因 / 対処 |
|---|---|
ssh: command not found | openssh パッケージ未インストール。setup を再実行して追加 |
| Permission denied (publickey) | authorized_keys のパーミッション不正。chmod 600 / ~/.ssh は 700 |
| WARNING: UNPROTECTED PRIVATE KEY FILE | 秘密鍵が他ユーザから読める。chmod 600 ~/.ssh/id_ed25519 |
| 接続が頻繁に切れる | config に ServerAliveInterval 60 を追加 |
Cygwin vs Windows 標準 OpenSSH
Windows 10 / 11 には標準で OpenSSH クライアントが入っており、PowerShell から ssh user@host がそのまま使えます。SSH 接続だけが目的なら Cygwin は不要です。Cygwin は grep / awk / find など Unix コマンド一式を使いたい場合の選択肢となります。
| 選択肢 | 特徴 |
|---|---|
| Cygwin + OpenSSH | Unix コマンド一式が手に入る。歴史が長く資料豊富 |
| Windows 標準 OpenSSH | 追加導入不要。ssh のみ使うなら最速 |
| WSL2 | 本物の Linux 環境。開発全般を Linux に寄せたい人向け |
| Git Bash | Git for Windows に同梱。軽量で Bash + SSH が使える |