-
Notifications
You must be signed in to change notification settings - Fork 0
MS_SSH
- 戻る(シェル)
telnet に暗号化機能を追加したような感じのモノ。
- リモートホストのシェルを利用するための既存のプロトコルを代用する手段
-
rcpを代用するscpや、FTPを代用するための sftp が
用意されている。 - 現在は、バージョン 1(非推奨)とバージョン 2 の 2 種類のプロトコルが
共存している。 - 単に SSH と言った場合、OpenSSH の実装系を指すことが多い。
-
CMDやPowerShellやWSLなどのシェルや
専用 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 1080SOCKS プロキシとして動作 なお、ポート フォワーディングは
ファイアウォールを実質的に迂回する手段でもあるため、
サーバー側でAllowTcpForwarding noにより禁止されている場合がある。
SSL/TLSと同様にポート・フォワーディングに使用される。
-
Linuxサブシステム的な位置づけなので、
Windows Terminalに似ている。 - Git Bash は、Git for Windows、
Visual Studio Code ターミナル(Visual Studio Code)などで使用できる。
補足(設定ファイルを使う): 接続先が増えたら
~/.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で書いていた踏み台経由の
記述を簡潔にしたもので、現在はこちらを使う。
-
Secure Shell - Wikipedia
https://ja.wikipedia.org/wiki/Secure_Shell -
OpenSSH - Wikipedia
https://ja.wikipedia.org/wiki/OpenSSH -
SSHの公開鍵認証における良くある誤解の話
https://qiita.com/angel_p_57/items/2e3f3f8661de32a0d432
- Windows での OpenSSH | Microsoft Learn
https://learn.microsoft.com/windows-server/administration/openssh/openssh_overview
Tags: 移行, IT国際標準, インフラストラクチャ, セキュリティ, 暗号化, 通信技術, シェル, Windows, Linux, クラウド, Azure
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。