この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:T
更新日時:2026-06-11 07:07:02

タイトル: Cygwinを使用したSSH接続方法
SEOタイトル: Cygwin で SSH 接続する方法(OpenSSH インストール / 鍵生成 / config 設定 完全ガイド)

この記事の要点
  • Cygwin は Windows 上で POSIX 互換のシェル環境を提供するツール。OpenSSH パッケージを追加すれば Linux と同じ感覚で ssh コマンドが使える
  • インストーラ setup-x86_64.exeopenssh パッケージを選択して導入
  • 鍵認証は ssh-keygen -t ed25519 で生成 — ~/.ssh/ 配下に秘密鍵 / 公開鍵が作られる
  • ~/.ssh/config にホスト別の接続設定を書けば ssh prod のように短く起動できる
  • Windows 10 / 11 標準の OpenSSH クライアントでも同等のことができるため、新規環境では選択肢として検討

Cygwin とは

Cygwin は Windows 上でPOSIX 互換の Unix ライクな環境を実現するソフトウェア群です。Linux/macOS で慣れ親しんだ bash / ssh / grep / vim などのコマンドを Windows のコマンドプロンプトの代わりに使えるようになります。

本記事では Cygwin に OpenSSH を導入して、リモートサーバへ SSH 接続するまでの手順をまとめます。

1. Cygwin のインストール

  1. 公式サイトから setup-x86_64.exe をダウンロード
  2. インストーラを起動し、「Install from Internet」を選択
  3. インストール先(既定: C:\cygwin64)とローカルパッケージディレクトリを指定
  4. ミラーサイトを選択(日本なら ftp.iij.ad.jp など)
  5. Select Packages 画面で検索欄に openssh と入力し、net カテゴリの openssh を「Skip」から最新バージョンに変更
  6. 依存関係を確認して「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 foundopenssh パッケージ未インストール。setup を再実行して追加
Permission denied (publickey)authorized_keys のパーミッション不正。chmod 600 / ~/.ssh700
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 + OpenSSHUnix コマンド一式が手に入る。歴史が長く資料豊富
Windows 標準 OpenSSH追加導入不要。ssh のみ使うなら最速
WSL2本物の Linux 環境。開発全般を Linux に寄せたい人向け
Git BashGit for Windows に同梱。軽量で Bash + SSH が使える

関連記事