https://www.openssh.com/releasenotes.html#9.1 Changes since OpenSSH 9.0 ========================= OpenSSH 9.0 からの変更 This release is focused on bug fixing. このリリースはバグ修正に集中している. Security ======== セキュリティ This release contains fixes for three minor memory safety problems. None are believed to be exploitable, but we report most memory safety problems as potential security vulnerabilities out of caution. このリリースは 3 つのマイナーなメモリ安全の問題の修正を含んでいる. どれも悪用可能ではないと考えられているが, たいていのメモリ安全の 問題は潜在的なセキュリティ脆弱性として要注意とレポートする. * ssh-keyscan(1): fix a one-byte overflow in SSH- banner processing. Reported by Qualys ssh-keyscan(1): SSH- バナーの処理での 1 byte のオーバーフローを修正する. Qualys によって報告された. * ssh-keygen(1): double free() in error path of file hashing step in signing/verify code; GHPR333 ssh-keygen(1): 署名/検証コードでファイルをハッシュするステップでの エラーパスにある二重 free(); GHPR333 * ssh-keysign(8): double-free in error path introduced in openssh-8.9 ssh-keysign(3): openssh-8.9 で導入してしまったエラーパスでの二重 free Potentially-incompatible changes -------------------------------- 潜在的に非互換の変更 * The portable OpenSSH project now signs commits and release tags using git's recent SSH signature support. The list of developer signing keys is included in the repository as .git_allowed_signers and is cross-signed using the PGP key that is still used to sign release artifacts: https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc 移植版 OpenSSH プロジェクトは, git の最近の SSH 署名サポートを 用いて 今後 commit と release tag に署名する. 開発者の署名鍵の リストは レポジトリに .git_allowed_signers として含まれ, リリース に署名するのにまだ用いられている PGP 鍵を用いて クロス署名されている: https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc * ssh(1), sshd(8): SetEnv directives in ssh_config and sshd_config are now first-match-wins to match other directives. Previously if an environment variable was multiply specified the last set value would have been used. bz3438 ssh(1), sshd(8): ssh_config と sshd_config 中の SetEnv 設定項目 は今後他の設定項目に一致するよう最初の一致が勝つようになる. 以前は複数設定された環境変数は最後に設定された値が用いられていた. bz3438 * ssh-keygen(8): ssh-keygen -A (generate all default host key types) will no longer generate DSA keys, as these are insecure and have not been used by default for some years. ssh-keygen(8): ssh-keygen -A (すべてのデフォルトホスト鍵のタイプを生成する) は DSA 鍵を生成しなくなっている. これは安全ではなく数年にわたりデフォルトでは 利用されなくなっている. New features ------------ 新機能 * ssh(1), sshd(8): add a RequiredRSASize directive to set a minimum RSA key length. Keys below this length will be ignored for user authentication and for host authentication in sshd(8). ssh(1), sshd(8): 最小の RSA 鍵長を設定する RequiredRSASize 設定項目 を追加する. この長さを下回る鍵は sshd(8) のユーザー認証とホスト認証で 無視される. ssh(1) will terminate a connection if the server offers an RSA key that falls below this limit, as the SSH protocol does not include the ability to retry a failed key exchange. ssh(1) は, この制限を下回る RSA 鍵がサーバから提供された場合, 接続を切断する. SSH プロトコルは失敗した鍵交換をリトライする 機能を含んでいない. * sftp-server(8): add a "users-groups-by-id@openssh.com" extension request that allows the client to obtain user/group names that correspond to a set of uids/gids. sftp-server(8): クライアントが uid/gid の集合に関連する user/group 名を得ることができる "users-groups-by-id@openssh.com" 拡張リクエストを追加する. * sftp(1): use "users-groups-by-id@openssh.com" sftp-server extension (when available) to fill in user/group names for directory listings. sftp(1): "users-groups-by-id@openssh.com" sftp-server 拡張 (が利用できる場合) を用いてディレクトリの列挙に user/group 名を 埋める. * sftp-server(8): support the "home-directory" extension request defined in draft-ietf-secsh-filexfer-extensions-00. This overlaps a bit with the existing "expand-path@openssh.com", but some other clients support it. sftp-server(8): draft-ietf-secsh-filexfer-extensions-00 で定義された "home-directory" 拡張リクエストをサポートする. これは, 既存の, 他のいくつかのクライアントがサポートしている "expand-path@openssh.com" をちょっと上書きするが, * ssh-keygen(1), sshd(8): allow certificate validity intervals, sshsig verification times and authorized_keys expiry-time options to accept dates in the UTC time zone in addition to the default of interpreting them in the system time zone. YYYYMMDD and YYMMDDHHMM[SS] dates/times will be interpreted as UTC if suffixed with a 'Z' character. ssh-keygen(1), sshd(8): 証明書の正当性期間と sshsig 検証の時間, authorized_keys の期限オプションで デフォルトのシステムのタイムゾーンでの 解釈される日付に加えて UTC タイムゾーンでの日付を受け付けるようにする 'Z' の文字が後置されていると YYYYMMDD と YYMMDDHHMM[SS] の日付/時間が UTC として解釈される. Also allow certificate validity intervals to be specified in raw seconds-since-epoch as hex value, e.g. -V 0x1234:0x4567890. This is intended for use by regress tests and other tools that call ssh-keygen as part of a CA workflow. bz3468 また, 証明書の正当性期間で 16 進数の値, 例えば -V 0x1234:0x4567890, で生の seconds-since-epoch を指定できるようになる. これは CA ワークフローの一部として ssh-keygen を呼ぶ回帰テストや その他のツールでの利用を意図している. bz3468 * sftp(1): allow arguments to the sftp -D option, e.g. sftp -D "/usr/libexec/sftp-server -el debug3" sftp(1): sftp -D オプションに引数を許可する, 例えば sfpt -D "/usr/libexec/sftp-server -el debug3". * ssh-keygen(1): allow the existing -U (use agent) flag to work with "-Y sign" operations, where it will be interpreted to require that the private keys is hosted in an agent; bz3429 ssh-keygen(1): 既存の -U (use agent) オプションが "-Y sign" 操作と共に 動作するようになる. エージェントに配置された秘密鍵を必要とすると解釈される. Bugfixes -------- バグ修正 * ssh-keygen(1): implement the "verify-required" certificate option. This was already documented when support for user-verified FIDO keys was added, but the ssh-keygen(1) code was missing. ssh-keygen(1): "verify-required" 証明書オプションを実装する. これはすでに user-verified な FIDO 鍵の追加のサポートの際に 文書化されていたが, ssh-keygen(1) のコードはなかった. * ssh-agent(1): hook up the restrict_websafe command-line flag; previously the flag was accepted but never actually used. ssh-agent(1): restrict_websafe コマンドラインオプンを有効にする; 以前はオプションは受け付けていたが実際に利用されていなかった. * sftp(1): improve filename tab completions: never try to complete names to non-existent commands, and better match the completion type (local or remote filename) against the argument position being completed. ファイル名のタブ補完を改良する: 存在しないコマンドに対して名前の 補完を試みないようになり, 補完される引数の位置に対して補完のタイプ (ローカルないしリモートのファイル名)によりよく一致するようになる. * ssh-keygen(1), ssh(1), ssh-agent(1): several fixes to FIDO key handling, especially relating to keys that request user-verification. These should reduce the number of unnecessary PIN prompts for keys that support intrinsic user verification. GHPR302, GHPR329 ssh-keygen(1), ssh(1), ssh-agent(1): FIDO 鍵の扱いにいくつかの修正をする. 特に user-verification を要求する鍵に関して. 固有のユーザ検証をサポートする鍵に対する必要のない PIN prompt の数が 減るはずだ. GHPR302, GHPR329 * ssh-keygen(1): when enrolling a FIDO resident key, check if a credential with matching application and user ID strings already exists and, if so, prompt the user for confirmation before overwriting the credential. GHPR329 ssh-keygen(1): FIDO resident 鍵を登録する際, 一致するアプリケーションの 証明書とユーザ ID 文字列がすでに存在するかを検査し, 存在する場合 証明書を上書きする前にユーザに確認の prompt を出す. GHPR329 * sshd(8): improve logging of errors when opening authorized_keys files. bz2042 sshd(8): authorized_keys ファイルを開く際のエラーのログを改善する. bz2042 * ssh(1): avoid multiplexing operations that could cause SIGPIPE from causing the client to exit early. bz3454 ssh(1):クライアントの早期終了を引き起こす SIGPIPE が発生する可能性のある 多重化操作を咲ける. bz3454 * ssh_config(5), sshd_config(5): clarify that the RekeyLimit directive applies to both transmitted and received data. GHPR328 ssh_config(5), sshd_config(5): RekeyLimit 設定項目が 転送されるデータと受信するデータの両方に適用されることを明確にする. GHPR328 * ssh-keygen(1): avoid double fclose() in error path. ssh-keygen(1): エラーの場合に二重に fclose() していたのをやめる. * sshd(8): log an error if pipe() fails while accepting a connection. bz3447 sshd(8): 接続を受け付ける際の pipe() の失敗をエラーとしてログする. bz3447 * ssh(1), ssh-keygen(1): fix possible NULL deref when built without FIDO support. bz3443 ssh(1), ssh-keygen(1): FIDO サポートなしでビルドした場合の NULL 逆参照の可能性を修正する. bz3443 * ssh-keyscan(1): add missing *-sk types to ssh-keyscan manpage. GHPR294. ssh-keyscan(1): ssh-keyscan の man ページに欠けていた *-sk タイプ を追加する. GHPR294 * sshd(8): ensure that authentication passwords are cleared from memory in error paths. GHPR286 sshd(8): エラーの場合にメモリから認証パスワードを消すことを保証する. GHPR286 * ssh(1), ssh-agent(1): avoid possibility of notifier code executing kill(-1). GHPR286 ssh(1), ssh-agent(1): 通知コードが kill(-1) を実行する可能性をなくす. GHPR286 * ssh_config(5): note that the ProxyJump directive also accepts the same tokens as ProxyCommand. GHPR305. ssh_config(5): ProxyJump 設定項目が ProxyCommand のように 同じトークンを受け付けることを明記する. GHPR305. * scp(1): do not not ftruncate(3) files early when in sftp mode. The previous behaviour of unconditionally truncating the destination file would cause "scp ~/foo localhost:foo" and the reverse "scp localhost:foo ~/foo" to delete all the contents of their destination. bz3431 scp(1): sftp モードの場合にファイルを早期に ftruncate(3) しないようにする. 送信先のファイルを絶対に truncate する以前の振舞いでは, "scp ~/foo localhost:foo" と逆の "scp localhost:foo ~/foo" を実行すると送信先のすべての内容を削除してしまう. bz3431 * ssh-keygen(1): improve error message when 'ssh-keygen -Y sign' is unable to load a private key; bz3429 ssh-keygen(1): 'ssh-keygen -Y sign' が秘密鍵のロードをできなかった 場合のエラーメッセージを改善する; bz3429 * sftp(1), scp(1): when performing operations that glob(3) a remote path, ensure that the implicit working directory used to construct that path escapes glob(3) characters. This prevents glob characters from being processed in places they shouldn't, e.g. "cd /tmp/a*/", "get *.txt" should have the get operation treat the path "/tmp/a*" literally and not attempt to expand it. sftp(1), scp(1): リモートパスに対して glob(3) する操作を実行する際, 暗黙の作業ディレクトリが glob(3) の文字をエスケープしたパスで 構築されていることを保証する. これは glob の文字が 適用されるべきではない 位置で処理されるのを防ぐ. 例えば "cd /tmp/a*/", "get *.txt" では get 操作は 文字通り パス "/tmp/a*" を扱い, 展開されてはならない. * ssh(1), sshd(8): be stricter in which characters will be accepted in specifying a mask length; allow only 0-9. GHPR278 ssh(1), sshd(8): mask 長を指定する際に受け付ける文字を厳格にする; 0-9 のみが有効. GHPR278 * ssh-keygen(1): avoid printing hash algorithm twice when dumping a KRL ssh-keygen(1): KRL をダンプする際ハッシュアルゴリズムを 2回表示するのを避ける. * ssh(1), sshd(8): continue running local I/O for open channels during SSH transport rekeying. This should make ~-escapes work in the client (e.g. to exit) if the connection happened to have stalled during a rekey event. ssh(1), sshd(8): SSH トランスポートの rekey 中に開いているチャンネルの ローカル I/O を継続する. 接続が rekey イベント中にストールした場合に クライアントでの ~~エスケープ (例えば 終了) が動作するようになる. * ssh(1), sshd(8): avoid potential poll() spin during rekeying ssh(1), sshd(8): rekey 中に可能性のある poll() spin を避ける * Further hardening for sshbuf internals: disallow "reparenting" a hierarchical sshbuf and zero the entire buffer if reallocation fails. GHPR287 sshbuf 内部をより強固にする. 階層的な sshbuf の "reparenting" を 無効にし, 再配置に失敗した場合バッファ全体をゼロで埋める. GHPR287 Portability ----------- 移植性 * ssh(1), ssh-keygen(1), sshd(8): automatically enable the built-in FIDO security key support if libfido2 is found and usable, unless --without-security-key-builtin was requested. ssh(1), ssh-keygen(1), sshd(8): --without-security-key-builtin が 要求されていなければ, libfido2 が発見され利用可能ならば 自動的に組込みの FIDO セキュリティ鍵サポートが有効化される. * ssh(1), ssh-keygen(1), sshd(8): many fixes to make the WinHello FIDO device usable on Cygwin. The windows://hello FIDO device will be automatically used by default on this platform unless requested otherwise, or when probing resident FIDO credentials (an operation not currently supported by WinHello). ssh(1), ssh-keygen(1), sshd(8): Cygwin 上の WinHello FIDO デバイス を利用可能にする. windows://hello FIDO デバイスは, 他のものが要求 されていないか, (WinHello によって現在サポートされていない操作の) resident FIDO credentials が探査されていない場合, Cygwin では 自動的に利用される. * Portable OpenSSH: remove workarounds for obsolete and unsupported versions of OpenSSL libcrypto. In particular, this release removes fallback support for OpenSSL that lacks AES-CTR or AES-GCM. 移植版 OpenSSH: OpenSSL libcrypto のすたれてサポートされていないバージョン向けの 緩和策を除く. 特に AES-CTR と AES-GCM を欠いている OpenSSL の代替 サポートをこのリリースでは除いている. Those AES cipher modes were added to OpenSSL prior to the minimum version currently supported by OpenSSH, so this is not expected to impact any currently supported configurations. それらの AES 暗号モードは, OpenSSH が現在サポートしている最低バージョンより 前に OpenSSL に追加されており, 現在のサポートされている構成にはなにも影響しないと 期待される. * sshd(8): fix SANDBOX_SECCOMP_FILTER_DEBUG on current Linux/glibc sshd(8): 現在の Linux/glibc 上での SANDBOX_SECCOMP_FILTER_DEBUG を修正する * All: resync and clean up internal CSPRNG code. 全て: 内部の CSPRNG コードを再同期し整理する. * scp(1), sftp(1), sftp-server(8): avoid linking these programs with unnecessary libraries. They are no longer linked against libz and libcrypto. This may be of benefit to space constrained systems using any of those components in isolation. scp(1), sftp(1), sftp-server(8): 不要なライブラリをこれらのプログラムに リンクしないようにする. libz と libcrypto に対してもはやリンクされない. 容量が限られたシステムでこれらのプログラムが独立に用いられる場合に 利益があるだろう. * sshd(8): add AUDIT_ARCH_PPC to supported seccomp sandbox architectures. sshd(8): サポートする seccomp sandbox アーキテクチャーに AUDIT_ARCH_PPC を追加する. * configure: remove special casing of crypt(). configure will no longer search for crypt() in libcrypto, as it was removed from there years ago. configure will now only search libc and libcrypt. configure: crypt() の特別な場合を削除する. configure は libcrypto 内の crypt() をもはや検索していない. 数年前に削除されている. 現在 configure は libc と libcrypt だけを検索する. * configure: refuse to use OpenSSL 3.0.4 due to potential RCE in its RSA implementation (CVE-2022-2274) on x86_64. configure: x86_64 での RSA 実装の RCE の可能性 (CVE-2022-2274) のため OpenSSL 3.0.4 の利用を拒否する. * All: request 1.1x API compatibility for OpenSSL >=3.x; GHPR322 全て: OpenSSL >=3.x に対して 1.1x API 互換性を要求する; GHPR322 * ssh(1), ssh-keygen(1), sshd(8): fix a number of missing includes required by the XMSS code on some platforms. ssh(1), ssh-keygen(1), sshd(8): いくつかのプラットフォームで XMSS コードで必要とされる多数の欠けていた include を修正する. * sshd(8): cache timezone data in capsicum sandbox. sshd(8): capsicum sandbox でタイムゾーンのデータをキャッシュする.