Skip to content
nishi_74322014 edited this page Aug 19, 2026 · 2 revisions

SSH

概要

telnet に暗号化機能を追加したような感じのモノ。

  • リモートホストのシェルを利用するための既存のプロトコルを代用する手段
  • rcp を代用する scp や、FTPを代用するための sftp
    用意されている。
  • 現在は、バージョン 1(非推奨)とバージョン 2 の 2 種類のプロトコルが
    共存している。
  • 単に SSH と言った場合、OpenSSH の実装系を指すことが多い。
  • CMDPowerShellWSLなどのシェル
    専用 GUI アプリから使う

移行メモ(正式名称と最新化): SSH = Secure Shell
「バージョン 1 と 2 が共存している」という記述は現在では実態と異なり、
SSH-1 は OpenSSH 7.4(2016年)で既定無効、以降のリリースで完全に削除された。
現在流通している実装で SSH-1 が使えるものはまず無く、
実質 SSH-2 のみと考えてよい。

補足(Windows での大きな変化): 元ページは「専用 GUI アプリから使う」と
書いているが、Windows 10 (1809) / Windows Server 2019 以降、
OpenSSH がオプション機能として OS に同梱
された。

ssh user@host              ← 追加インストール不要で使える
  • クライアントは既定で有効。
  • サーバーsshd)も「オプション機能」から追加でき、
    Windows へ SSH でログインできる。

これにより、Tera Term / PuTTY といった専用クライアントは
必須ではなくなった(セッション管理やマクロが要る場合に選ぶ)。

詳細

認証と暗号化

認証

  • パスワード認証
  • 公開鍵暗号化による認証

補足(現在の鍵の選び方): 公開鍵認証で使う鍵の種類には
現在の推奨がある。

鍵種 評価
Ed25519 推奨。短く速く、強度も十分(ssh-keygen -t ed25519
ECDSA 可。ただし曲線の選定に議論がある
RSA 3072 / 4096 可。互換性が要る場合
RSA 1024 / DSA 不可。DSA は OpenSSH から削除済み

また ssh-rsa(SHA-1 署名)は OpenSSH 8.8 で既定無効になった。
「急に古いサーバーへ繋がらなくなった」場合はこれが原因のことが多い。

  • 3DES
  • AES
  • Blowfish
  • RC4(arcfour)

移行メモ(最新化:非推奨アルゴリズム): 上記のうち
3DES / Blowfish / RC4(arcfour)は現在では使ってはならない

アルゴリズム 状況
RC4 (arcfour) 破られている。OpenSSH から削除済み
Blowfish 64bit ブロック長で Sweet32 の対象。削除済み
3DES 同上。既定無効
AES-GCM / ChaCha20-Poly1305 現在の既定。AEAD で改ざん検知も兼ねる

現在の OpenSSH の既定は
chacha20-poly1305@openssh.com / aes256-gcm@openssh.com などである。

シェルとポート・フォワーディング

シェル

  • 通常は、リモートからシェルにアクセスできる。
  • この際の通信は、SSH の機能で暗号化される。

ポート・フォワーディング

  • シェルへのアクセスではなく、クライアント・サーバー間の暗号化通信
  • これには、SSH のポート・フォワーディング(≒ トンネリング)を活用する。
  • これにより、任意のプロトコルで暗号化通信が可能(X over SSH)。

補足(3 種類のフォワーディング): 実務で使い分ける 3 つを整理しておく。

種別 オプション 用途
ローカル転送 -L 5432:db:5432 手元のポートを踏み台越しにリモートへ。DB 接続などで最頻出
リモート転送 -R 8080:localhost:80 リモート側のポートを手元へ。NAT 内のサービス公開
動的転送 -D 1080 SOCKS プロキシとして動作

なお、ポート フォワーディングは
ファイアウォールを実質的に迂回する手段でもあるため、
サーバー側で AllowTcpForwarding no により禁止されている場合がある。

X over SSH

SSL/TLSと同様にポート・フォワーディングに使用される。

クライアント

Git Bash

補足(設定ファイルを使う): 接続先が増えたら
~/.ssh/config(Windows では C:\Users\<user>\.ssh\config)に
まとめるのが定石である。

Host bastion
    HostName bastion.example.com
    User admin
    IdentityFile ~/.ssh/id_ed25519

Host db
    HostName 10.0.1.20
    ProxyJump bastion     ← 踏み台経由を 1 行で表現できる

これで ssh db だけで踏み台越しに接続できる。
ProxyJump-J)は、以前 ProxyCommand で書いていた踏み台経由の
記述を簡潔にしたもので、現在はこちらを使う。

参考

microsoft.com


Tags: 移行, IT国際標準, インフラストラクチャ, セキュリティ, 暗号化, 通信技術, シェル, Windows, Linux, クラウド, Azure

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally