OpenSSH 9.0 がリリースされました

2022/04/08, OpenSSH 9.0 がリリースされました.

scp で sftp プロトコルがデフォルトで利用されるようになりました.


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 "" to support

潜在的な非互換性の他の領域は, 他のユーザのホームディレクトリの相対リモートパス,
例えば, "scp host:~user/file /tmp" に関連する. SFTP プロトコルは, ~user パスの
展開をネイティブに行なう方法を持たない. しかし, OpenSSH 8.7 以降の sftp-server(8)
は,  これをサポートする "" プロトコル拡張で

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 ("").
   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
   鍵交換法がデフォルトで用いられる ("").
   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" コマンドを追加する.



 * 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

   sshd(8): 承認されていない もしくは サポートされていない署名アルゴリズムを用いる
   クライアントからの公開鍵認証要求を拒否する時, デバッグが簡単になるよう


 * 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)

   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.

   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 のサポートの