「WindowsでSSH使うにはPuTTY必要でしょ?」 「コマンドプロンプトでsshって打ったらエラーが…」 「PowerShellとコマンドプロンプト、どっち使えばいいの?」
実は、Windows 10以降はSSHクライアントが標準搭載されています!
もうPuTTYをダウンロードする必要はありません。 (もちろん、PuTTYも便利ですけどね)
この記事を読めば、 WindowsでLinuxサーバーにスマートに接続できるようになります!
【最速】Windows標準SSHを今すぐ使う方法

方法1:PowerShellで接続(推奨)
最も簡単な方法:
- PowerShellを起動
- Windowsキー + X → 「Windows PowerShell」
- または検索バーで「PowerShell」
- SSHコマンドを実行
ssh ユーザー名@サーバーアドレス
例:ssh admin@192.168.1.100 ssh root@example.com ssh -p 2222 user@server.com
- 初回接続時の確認
The authenticity of host 'example.com' can't be established. Are you sure you want to continue connecting (yes/no)?
→ yes と入力
これだけ!簡単でしょ?
方法2:コマンドプロンプトで接続
従来のcmdでも使える:
- コマンドプロンプトを起動
- Windowsキー + R → 「cmd」
- または検索バーで「cmd」
- 同じくSSHコマンド
ssh user@hostname
方法3:Windows Terminal(最新・最強)
Microsoft Store からインストール:
- Windows Terminalをインストール
- Microsoft Store で「Windows Terminal」検索
- 無料でインストール
- 複数タブで管理
- Ctrl + Shift + T:新規タブ
- 複数サーバーを同時管理
Windows Terminalのメリット:
- タブ機能
- 画面分割
- テーマカスタマイズ
- フォント変更可能
WindowsでSSHが使えない場合の対処法
OpenSSHクライアントの有効化
Windows 10/11で有効化する手順:
- 設定を開く
- Windowsキー + I
- または歯車アイコン
- オプション機能を開く
- アプリ → オプション機能
- または「Windowsの機能の有効化」を検索
- OpenSSHクライアントを追加
オプション機能の追加 → 「OpenSSH クライアント」を探す → インストール
- 確認コマンド
ssh -V
バージョンが表示されればOK!
古いWindowsの場合(Windows 7/8)
選択肢:
- PuTTYをインストール(後述)
- Git Bashをインストール
- WSL(Windows Subsystem for Linux)を使用
SSHコマンドの基本と応用
基本的な接続コマンド
標準的な接続:
# 基本形
ssh username@hostname
# ポート指定
ssh -p 2222 username@hostname
# IPv6アドレス
ssh username@[2001:db8::1]
# 詳細表示(デバッグ)
ssh -v username@hostname
よく使うオプション
オプション | 説明 | 使用例 |
---|---|---|
-p | ポート番号指定 | ssh -p 2222 user@host |
-i | 秘密鍵ファイル指定 | ssh -i ~/.ssh/id_rsa user@host |
-L | ローカルフォワード | ssh -L 8080:localhost:80 user@host |
-R | リモートフォワード | ssh -R 9090:localhost:3000 user@host |
-N | コマンド実行なし | ssh -N -L 3306:localhost:3306 user@host |
-X | X11転送(GUI) | ssh -X user@host |
-v | 詳細表示 | ssh -v user@host |
便利な使い方
コマンド実行して切断:
ssh user@host "ls -la"
ssh user@host "df -h"
ssh user@host "sudo systemctl restart nginx"
ファイル転送(SCP):
# ファイルをアップロード
scp file.txt user@host:/home/user/
# ファイルをダウンロード
scp user@host:/var/log/app.log ./
# ディレクトリごと転送
scp -r folder/ user@host:/home/user/
複数ホスト経由(踏み台):
# ProxyJump使用(OpenSSH 7.3以降)
ssh -J bastion@jump.server user@target.server
# 古い方法
ssh -o ProxyCommand="ssh bastion@jump.server -W %h:%p" user@target.server
SSH鍵認証の設定(パスワード不要)
Windows で SSH鍵を生成
PowerShellで実行:
# 鍵ペアの生成(推奨:Ed25519)
ssh-keygen -t ed25519 -C "your_email@example.com"
# RSA鍵(互換性重視)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
保存場所(デフォルト):
C:\Users\ユーザー名\.ssh\id_ed25519 # 秘密鍵
C:\Users\ユーザー名\.ssh\id_ed25519.pub # 公開鍵
公開鍵をサーバーに登録
方法1:ssh-copy-id(Windows 10 以降)
# 公開鍵を自動コピー
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@host "cat >> ~/.ssh/authorized_keys"
方法2:手動コピー
- 公開鍵の内容をコピー
cat ~/.ssh/id_ed25519.pub
- サーバー側で登録
mkdir -p ~/.ssh echo "公開鍵の内容" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
SSH設定ファイル(config)の活用
設定ファイルの場所:
C:\Users\ユーザー名\.ssh\config
設定例:
# 本番サーバー
Host production
HostName prod.example.com
User admin
Port 22
IdentityFile ~/.ssh/prod_key
# 開発サーバー
Host dev
HostName 192.168.1.100
User developer
Port 2222
IdentityFile ~/.ssh/dev_key
# 踏み台経由
Host internal
HostName 10.0.0.50
User root
ProxyJump bastion
Host bastion
HostName bastion.example.com
User jump-user
使い方:
# 長いコマンドが...
ssh -i ~/.ssh/prod_key -p 22 admin@prod.example.com
# これだけに!
ssh production
Windows専用SSHツール比較

PuTTY(定番)
特徴:
- 無料
- 日本語版あり
- セッション保存機能
- PuTTYgen(鍵生成)付属
インストール:
# Chocolateyを使う場合
choco install putty
# またはダウンロード
# https://www.putty.org/
MobaXterm(多機能)
特徴:
- SSH + X11 + SFTP統合
- タブ機能
- マクロ機能
- 無料版でも高機能
Tera Term(日本製)
特徴:
- 日本語完全対応
- マクロ言語搭載
- シンプルで軽い
WinSCP(ファイル転送特化)
特徴:
- GUIでファイル管理
- PuTTYと連携
- 同期機能
トラブルシューティング
問題1:「ssh」コマンドが認識されない
解決方法:
- OpenSSHクライアントをインストール
- 設定 → オプション機能 → OpenSSHクライアント
- 環境変数PATHを確認
$env:Path -split ';' | Select-String ssh
- PowerShellを再起動
問題2:Permission denied (publickey)
原因と対策:
- 鍵の権限を確認
icacls $env:USERPROFILE\.ssh\id_ed25519
- 正しい鍵を指定
ssh -i C:\Users\ユーザー名\.ssh\correct_key user@host
問題3:接続がタイムアウトする
対策:
- ファイアウォール確認
- Windows Defender ファイアウォール
- 送信規則でSSH(22番ポート)許可
- Keep-Alive設定
# ~/.ssh/config に追加 Host * ServerAliveInterval 60 ServerAliveCountMax 3
問題4:文字化けする
解決方法:
# PowerShellの文字コード変更
chcp 65001
# または環境変数設定
$env:LANG = "ja_JP.UTF-8"
セキュリティ強化設定
Windows側のセキュリティ
SSH鍵の保護:
# 秘密鍵のアクセス権限を制限
icacls $env:USERPROFILE\.ssh\id_ed25519 /inheritance:r /grant:r "$env:USERNAME:(R)"
ssh-agentの使用:
# ssh-agentサービスを開始
Start-Service ssh-agent
# 自動起動設定
Set-Service -Name ssh-agent -StartupType Automatic
# 鍵を追加
ssh-add ~/.ssh/id_ed25519
推奨セキュリティ設定
~/.ssh/config に追加:
Host *
# パスワード認証を無効化
PasswordAuthentication no
# 強い暗号化のみ使用
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
# ハッシュアルゴリズム
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
# 鍵交換アルゴリズム
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org
便利なツールとスクリプト
PowerShellスクリプトで自動化
複数サーバー一括コマンド実行:
# servers.ps1
$servers = @("server1", "server2", "server3")
$command = "uptime"
foreach ($server in $servers) {
Write-Host "=== $server ===" -ForegroundColor Green
ssh $server $command
}
バッチファイルで定型作業
backup.bat:
@echo off
echo バックアップ開始...
scp user@server:/var/backup/db.sql C:\Backups\db_%date%.sql
echo バックアップ完了!
pause
まとめ:Windows SSH接続チートシート
基本接続:
ssh user@host
鍵生成:
ssh-keygen -t ed25519
ファイル転送:
scp file.txt user@host:/path/
設定ファイル活用:
~/.ssh/config で接続を簡略化
トラブル時:
ssh -v user@host # 詳細表示でデバッグ
WindowsでもSSHは簡単に使えるようになりました!
標準機能を使いこなせば、 LinuxやMacに負けない快適な環境が作れます。
まずはPowerShellでSSH接続から始めてみましょう!
WindowsでのSSH活用法、他にもあったら教えてください。みんなで便利な使い方を共有しましょう!
コメント