https://www.openssh.com/txt/release-9.0 Changes since OpenSSH 8.9 ========================= OpenSSH 8.9 からの変更点 This release is focused on bug fixing. このリリースはバグの修正に集中している. Potentially-incompatible changes -------------------------------- 潜在的に非互換の変更 This release switches scp(1) from using the legacy scp/rcp protocol to using the SFTP protocol by default. このリリースで scp(1) を伝統的な scp/rcp プロトコルの利用から デフォルトで SFTP プロトコルを利用するよう切り替える. Legacy scp/rcp performs wildcard expansion of remote filenames (e.g. "scp host:* .") through the remote shell. This has the side effect of requiring double quoting of shell meta-characters in file names included on scp(1) command-lines, otherwise they could be interpreted as shell commands on the remote side. 伝統的な scp/rcp はリモートのファイル名の展開 (例えば scp host:* .*) を リモートのシェルを通して行なう. これは, scp(1) のコマンドラインに含まれる ファイル名のシェルメタ文字のダブルクオートを必要とする副作用があり, 一方で それらはリモートサイドのシェルコマンドとして解釈される可能性がある. This creates one area of potential incompatibility: scp(1) when using the SFTP protocol no longer requires this finicky and brittle quoting, and attempts to use it may cause transfers to fail. We consider the removal of the need for double-quoting shell characters in file names to be a benefit and do not intend to introduce bug-compatibility for legacy scp/rcp in scp(1) when using the SFTP protocol. これは, 潜在的な非互換性の領域を作成する: SFTP プロトコルを用いる scp(1) は このような気難しく不安定なクオートを必要せず, 利用しようとすると転送に失敗する ことがある. ファイル名でのシェル文字のダブルクオートの必要の除去は利益となり SFTP プロトコルの利用時に scp(1) の伝統的な scp/rcp のバグのある互換性を 導入しないことを我々は考慮した. Another area of potential incompatibility relates to the use of remote paths relative to other user's home directories, for example - "scp host:~user/file /tmp". The SFTP protocol has no native way to expand a ~user path. However, sftp-server(8) in OpenSSH 8.7 and later support a protocol extension "expand-path@openssh.com" to support this. 潜在的な非互換性の他の領域は, 他のユーザのホームディレクトリの相対リモートパス, 例えば, "scp host:~user/file /tmp" に関連する. SFTP プロトコルは, ~user パスの 展開をネイティブに行なう方法を持たない. しかし, OpenSSH 8.7 以降の sftp-server(8) は, これをサポートする "expand-path@openssh.com" プロトコル拡張で サポートする. In case of incompatibility, the scp(1) client may be instructed to use the legacy scp/rcp using the -O flag. 非互換性がある場合, scp(1) クライアントに -O フラグを用いて伝統的な scp/rcp を利用するよう指定できる. New features ------------ 新機能 * ssh(1), sshd(8): use the hybrid Streamlined NTRU Prime + x25519 key exchange method by default ("sntrup761x25519-sha512@openssh.com"). The NTRU algorithm is believed to resist attacks enabled by future quantum computers and is paired with the X25519 ECDH key exchange (the previous default) as a backstop against any weaknesses in NTRU Prime that may be discovered in the future. The combination ensures that the hybrid exchange offers at least as good security as the status quo. ssh(1), sshd(8): ハイブリッドな Streamlined NTRU Prime + x25519 鍵交換法がデフォルトで用いられる ("sntrup761x25519-sha512@openssh.com"). NTRU アルゴリズムは将来の量子コンピュータが可能にする攻撃に対して 耐性があると信じられていて, 将来見付かるかもしれない NTRU Prime の 弱点に対抗するために (以前のデフォルトの) X25519 ECDH 鍵交換と 共に利用する. この組み合わせは, ハイブリッドな交換が それぞれがそのままよりも少なくともよいセキュリティを提供することを 保証する. We are making this change now (i.e. ahead of cryptographically- relevant quantum computers) to prevent "capture now, decrypt later" attacks where an adversary who can record and store SSH session ciphertext would be able to decrypt it once a sufficiently advanced quantum computer is available. 我々は, セッションの暗号文を記録し補完できる攻撃者が十分に進んだ 量子コンピュータが利用可能になった際に暗号文を復号できる "先に記録して後で復号する" 攻撃を防ぐために 今 (すなわち 暗号学的に関係するコンピュータに先んじて) この変更を行なう. * sftp-server(8): support the "copy-data" extension to allow server- side copying of files/data, following the design in draft-ietf-secsh-filexfer-extensions-00. bz2948 sftp-server(8): draft-ietf-secsh-filexfer-extensions-00 の 設計に従う, サーバサイドのファイル/データのコピーを許す "copy-data" 拡張をサポートする. bz2948 * sftp(1): add a "cp" command to allow the sftp client to perform server-side file copies. sftp(1): サーバサイドのファイルコピーを実行することを sftp クライアントに 許す "cp" コマンドを追加する. Bugfixes -------- バグ修正 * ssh(1), sshd(8): upstream: fix poll(2) spin when a channel's output fd closes without data in the channel buffer. bz3405 and bz3411 ssh(1), sshd(8): upstream: チャンネルの出力 fd が チャンネルバッファ中の データなしで閉じられた場合の poll(2) spin を修正する. * sshd(8): pack pollfd array in server listen/accept loop. Could cause the server to hang/spin when MaxStartups > RLIMIT_NOFILE sshd(8): server の listen/accept ループ中で pollfd の配列を 詰める. MaxStartups > RLIMIT_NOFILE の場合ん サーバが hang/spin を起こす可能性がある. * ssh-keygen(1): avoid NULL deref via the find-principals and check-novalidate operations. bz3409 and GHPR#307 respectively. ssh-keygen(1): find-principals と check-novalidate 操作による NULL の逆参照 を避ける. それぞれ bz3409 と GHPR#307. * scp(1): fix a memory leak in argument processing. bz3404 scp(1): 引数処理でのメモリリークを修正する. ba3404 * sshd(8): don't try to resolve ListenAddress directives in the sshd re-exec path. They are unused after re-exec and parsing errors (possible for example if the host's network configuration changed) could prevent connections from being accepted. sshd(8): sshd の re-exec パスで ListenAddress 設定項目の解決を しないようにする. re-exec や (例えばホストの ネットワークの設定が変更された場合にありえる) 接続が受け入れられない可能性があるエラーのパースの後では利用されない. * sshd(8): when refusing a public key authentication request from a client for using an unapproved or unsupported signature algorithm include the algorithm name in the log message to make debugging easier. sshd(8): 承認されていない もしくは サポートされていない署名アルゴリズムを用いる クライアントからの公開鍵認証要求を拒否する時, デバッグが簡単になるよう ログメッセージ中にアルゴリズム名を含める. Portability ----------- 移植性 * sshd(8): refactor platform-specific locked account check, fixing an incorrect free() on platforms with both libiaf and shadow passwords (probably only Unixware) GHPR#284, sshd(8): プラットフォーム特有なアカウント検査をリファクタリングし, libiaf と (Unixware でのみおそらく使われている) シャドーパスワード を両方用いるプラットフォームでの不正確な free() を修正する. * ssh(1), sshd(8): Fix possible integer underflow in scan_scaled(3) parsing of K/M/G/etc quantities. bz#3401. ssh(1), sshd(8): scan_scaled(3) が K/M/G/などの量をパースする時の 可能性のある整数アンダーフローを修正する. bz#3401. * sshd(8): provide killpg implementation (mostly for Tandem NonStop) GHPR#301. sshd(8): (大部分が Tandem NonStop のための) killpg 実装を提供する. * Check for missing ftruncate prototype. GHPR#301 存在しない ftruncate prototype を検査する. GHPR#301 * sshd(8): default to not using sandbox when cross compiling. On most systems poll(2) does not work when the number of FDs is reduced with setrlimit, so assume it doesn't when cross compiling and we can't run the test. bz#3398. sshd(8): クロスコンパイル時に sandbox をデフォルトでは利用しない. 多くのシステムで poll(2) は setrlimit で FD の数が制限されている 場合は動作せず. クロスコンパイルする場合でないではなくテストを 走らせる場合ではないと推測できる. * sshd(8): allow ppoll_time64 in seccomp sandbox. Should fix sandbox violations on some (at least i386 and armhf) 32bit Linux platforms. bz#3396. sshd(8): seccomp サンドボックスで ppoll_time64 を許可する. いくつかの (少なくとも i386 と armhf) の 32 ビット Linux プラットフォームでの sandbox 侵害を修正するはずだ. bz#3396 * Improve detection of -fzero-call-used-regs=all support in configure script. configure スクリプトでの -fzero-call-used-regs=all のサポートの 検知を改善する