OpenSSH 9.6p1 がリリースされました

18 Dec, 2023 - 9 minutes

2023/12/18, OpenSSH 9.6p1 がリリースされました.

セキュリティ修正を含むリリースです.

https://www.openssh.com/releasenotes.html#9.6p1

https://twitter.com/sempreff/status/1737072694116647095
でご指摘頂いた誤字を修正しました (2023-12-19 20:35)

Changes since OpenSSH 9.5
=========================

OpenSSH 9.5 からの変更点

This release contains a number of security fixes, some small features
and bugfixes.

このリリースは複数のセキュリティ修正といくつかの小さな機能追加,
バグ修正を含んでいる

Security
========

セキュリティ

This release contains fixes for a newly-discovered weakness in the
SSH transport protocol, a logic error relating to constrained PKCS#11
keys in ssh-agent(1) and countermeasures for programs that invoke
ssh(1) with user or hostnames containing invalid characters.

このリリースは, SSH トランスポートプロトコルで新しく発見された弱点と
ssh-agent(1) での制限された PKCS#11 鍵に関連するロジックエラーに対する
修正と, ユーザーないしホスト名に不正な文字を含む場合に ssh(1) を起動する
プログラムに対する対抗策を含んでいる.

 * ssh(1), sshd(8): implement protocol extensions to thwart the
   so-called "Terrapin attack" discovered by Fabian Bäumer, Marcus
   Brinkmann and Jörg Schwenk. This attack allows a MITM to effect a
   limited break of the integrity of the early encrypted SSH transport
   protocol by sending extra messages prior to the commencement of
   encryption, and deleting an equal number of consecutive messages
   immediately after encryption starts. A peer SSH client/server
   would not be able to detect that messages were deleted.

   ssh(1), sshd(8): Fabian Bäumer と Marcus Brinkmann, Jörg Schwenk
   によって発見された いわゆる "Terrapin attack" を妨害する
   プロトコル拡張を実装する. この攻撃は, 暗号化の開始の前に余分な
   メッセージを送信し暗号化の開始後すぐに同数の連続したメッセージを
   削除することで初期の暗号化された SSH トランスポートプロトコルの
   完全性を限定的に破ることで MITM を可能にする. SSH
   クライアント/サーバー ピアはメッセージが削除されたことを検出できない.

   While cryptographically novel, the security impact of this attack
   is fortunately very limited as it only allows deletion of
   consecutive messages, and deleting most messages at this stage of
   the protocol prevents user user authentication from proceeding and
   results in a stuck connection.

   暗号的には目新しいものだが, この攻撃のセキュリティへの影響は,
   幸運なことに非常に限られている.
   この攻撃が可能にするのは連続したメッセージの削除のみで, プロトコルの
   この段階で多くのメッセージを削除するとユーザー認証が妨害されて
   結果として接続はスタックする.

   The most serious identified impact is that it lets a MITM to
   delete the SSH2_MSG_EXT_INFO message sent before authentication
   starts, allowing the attacker to disable a subset of the keystroke
   timing obfuscation features introduced in OpenSSH 9.5. There is no
   other discernable impact to session secrecy or session integrity.

   認識されているもっとも重大な影響は, MITM によって
   認証の開始前に送られた SSH2_MSG_EXT_INFO
   メッセージが削除されることで,
   攻撃者は OpenSSH 9.5 で導入された キーストロークのタイミングを
   不明瞭にする特徴を無効にできる.
   これはセッションの秘匿性やセッションの完全性に対してそれ以外の
   認識できる影響は及ぼさない.

   OpenSSH 9.6 addresses this protocol weakness through a new "strict
   KEX" protocol extension that will be automatically enabled when
   both the client and server support it. This extension makes
   two changes to the SSH transport protocol to improve the integrity
   of the initial key exchange.

   OpenSSH 9.6 は このプロトコルの弱点に対し, 新しい "strict KEX"
   プロトコル拡張で対処する. この拡張はクライアントとサーバー両方で
   サポートされている場合に自動的に有効になる. この拡張は
   最初の鍵交換での完全性を向上する 2 点の変更を SSH トランスポート
   プロトコルに適用する.

   Firstly, it requires endpoints to terminate the connection if any
   unnecessary or unexpected message is received during key exchange
   (including messages that were previously legal but not strictly
   required like SSH2_MSG_DEBUG). This removes most malleability from
   the early protocol.

   まず, この拡張は鍵交換中に不要なメッセージや予測されないメッセージを
   受け取った場合に接続を終了することを要求する(SSH2_MSG_DEBUG のように
   以前は正当であったが厳密には必須ではないメッセージも含む). これにより
   以前のプロトコルから多くの柔軟性を除かれる.

   Secondly, it resets the Message Authentication Code counter at the
   conclusion of each key exchange, preventing previously inserted
   messages from being able to make persistent changes to the
   sequence number across completion of a key exchange. Either of
   these changes should be sufficient to thwart the Terrapin Attack.

   次に, この拡張は 鍵交換の完了のたびにメッセージ認証コード(MAC)
   をリセットし, 以前はできた鍵交換の完了にまたがったシーケンス番号の
   永続的な変更を可能にするメッセージの挿入を防止する. これらの変更
   のどちらかがあれば Terrapin 攻撃を妨害するのに十分と考えられる.

   More details of these changes are in the PROTOCOL file in the
   OpenSSH source distribition.

   OpenSSH のソース配布の PROTOCOL ファイルにこれらの変更のより詳細な
   記述がある.

 * ssh-agent(1): when adding PKCS#11-hosted private keys while
   specifying destination constraints, if the PKCS#11 token returned
   multiple keys then only the first key had the constraints applied.
   Use of regular private keys, FIDO tokens and unconstrained keys
   are unaffected.

   ssh-agent(1): 転送先の制限を指定された PKCS#11 形式の秘密鍵を
   追加する際, PKCS#11 トークンが複数の鍵を返すと, 最初の鍵のみに
   制限が適用されていた. 通常の秘密鍵や FIDO トークン, 制限されていない
   鍵の利用には影響しない.

 * ssh(1): if an invalid user or hostname that contained shell
   metacharacters was passed to ssh(1), and a ProxyCommand,
   LocalCommand directive or "match exec" predicate referenced the
   user or hostname via %u, %h or similar expansion token, then
   an attacker who could supply arbitrary user/hostnames to ssh(1)
   could potentially perform command injection depending on what
   quoting was present in the user-supplied ssh_config(5) directive.

   ssh(1): シェルのメタ文字を含む不正なユーザー名やホスト名が ssh(1)
   や ProxyCommand, LocalCommand 設定項目, ユーザーやホスト名を %u, %h
   で参照する "match exec" 述語や同様の展開トークンに渡されると,
   任意のユーザー/ホスト名を ssh(1) に適用できる攻撃者は潜在的に
   ユーザーが提供する ssh_config(5) の設定項目にある引用を利用して
   コマンドインジェクションを実行できる.

   This situation could arise in the case of git submodules, where
   a repository could contain a submodule with shell characters in
   its user/hostname. Git does not ban shell metacharacters in user
   or host names when checking out repositories from untrusted
   sources.

   この状況は git レポジトリがそのユーザー/ホスト名にシェル文字を含む
   submodule を持つ場合に発生しうる. git は信頼していないソースから
   レポジトリをチェックアウトする際ユーザーやホスト名でのシェル
   メタ文字を禁止していない.

   Although we believe it is the user's responsibility to ensure
   validity of arguments passed to ssh(1), especially across a
   security boundary such as the git example above, OpenSSH 9.6 now
   bans most shell metacharacters from user and hostnames supplied
   via the command-line. This countermeasure is not guaranteed to be
   effective in all situations, as it is infeasible for ssh(1) to
   universally filter shell metacharacters potentially relevant to
   user-supplied commands.

   ssh(1) に渡す引数の正当性を検証するのはユーザーの責任であると
   我々は考えているが,
   (特に前出の git の例でのセキュリティ境界を越える場合などでは)
   OpenSSH 9.6ではコマンドラインから提供されるユーザー/ホスト名について
   ほとんどのシェルメタ文字を禁止する. この対抗策はすべての場合に
   ついて効果があるとは保証されない.
   ユーザーが提供するコマンドに関連しうるシェルメタ文字を例外なくフィルター
   することは ssh(1) には不可能だからだ.

   User/hostnames provided via ssh_config(5) are not subject to these
   restrictions, allowing configurations that use strange names to
   continue to be used, under the assumption that the user knows what
   they are doing in their own configuration files.

   ssh_config(5) で提供されるユーザー/ホスト名はこれらの制限の対象外で,
   ユーザーは自身の設定ファイルで行なわれていることを知っているという仮定に基づき
   設定では奇妙な名前を引き続き利用可能だ.

Potentially incompatible changes
--------------------------------

潜在的に非互換な変更

 * ssh(1), sshd(8): the RFC4254 connection/channels protocol provides
   a TCP-like window mechanism that limits the amount of data that
   can be sent without acceptance from the peer. In cases where this
   limit was exceeded by a non-conforming peer SSH implementation,
   ssh(1)/sshd(8) previously discarded the extra data. From OpenSSH
   9.6, ssh(1)/sshd(8) will now terminate the connection if a peer
   exceeds the window limit by more than a small grace factor. This
   change should have no effect of SSH implementations that follow
   the specification.

   ssh(1), sshd(8): RFC4254 接続/チャンネルプロトコルはピアからの
   受諾なしに送信できるデータ量を制限する TCP 的な window 機構を
   提供する. 不適格なピアの SSH 実装がこの制限を越える場合, 
   ssh(1)/sshd(8) はこれまで余分なデータを捨てていた. OpenSSH 9.6
   からは, ピアがすこしの慈悲の要素を越えて window の制限を越えてきたら,
   ssh(1)/sshd(8) は接続を終了する. この変更は仕様に従う SSH の実装には
   影響がないはずだ.

New features
------------

新機能

 * ssh(1): add a %j token that expands to the configured ProxyJump
   hostname (or the empty string if this option is not being used)
   that can be used in a number of ssh_config(5) keywords. bz3610

   ssh(1): ssh_config(5) のキーワードとして利用できる
   設定された ProxyJump ホスト名
   (ないしこのオプションが設定されていなければ空文字列)を展開する %j
   トークンを追加する.

 * ssh(1): add ChannelTimeout support to the client, mirroring the
   same option in the server and allowing ssh(1) to terminate
   quiescent channels.

   ssh(1): ChannelTimeout サポートをクライアントに追加する.
   サーバー側の同じオプションに対応するもので, ssh(1) が
   利用されていないチャンネルを停止できる.

 * ssh(1), sshd(8), ssh-add(1), ssh-keygen(1): add support for
   reading ED25519 private keys in PEM PKCS8 format. Previously
   only the OpenSSH private key format was supported.

   ssh(1), sshd(8), ssh-add(1), ssh-keygen(1): PEM PKCS8 形式の
   ED25519 秘密鍵の読み取りのサポートを追加する. 以前は 
   OpenSSH 秘密鍵形式のみをサポートしていた.

 * ssh(1), sshd(8): introduce a protocol extension to allow
   renegotiation of acceptable signature algorithms for public key
   authentication after the server has learned the username being
   used for authentication. This allows varying sshd_config(5)
   PubkeyAcceptedAlgorithms in a "Match user" block.

   ssh(1), sshd(8): サーバーが認証で使われたユーザー名を認識したあとで
   公開鍵認証で受け入れる署名のアルゴリズムを再交渉できるプロトコル
   拡張を導入する. これにより, sshd_config(5) の "Match user" ブロックで
   PubkeyAcceptedAlgorithms を可変にできる.

 * ssh-add(1), ssh-agent(1): add an agent protocol extension to allow
   specifying certificates when loading PKCS#11 keys. This allows the
   use of certificates backed by PKCS#11 private keys in all OpenSSH
   tools that support ssh-agent(1). Previously only ssh(1) supported
   this use-case.

   ssh-add(1), ssh-agent(1): PKCS#11 鍵のロードの際に証明書を指定できる
   エージェントプロトコルの拡張を追加する. ssh-agent(1) をサポートする
   すべての OpenSSH ツールで PKCS#11
   秘密鍵を使う証明書の利用を可能にする
   以前は ssh(1) のみがこのユースケースをサポートしていた.

Bugfixes
--------

バグ修正

 * ssh(1): when deciding whether to enable the keystroke timing
   obfuscation, enable it only if a channel with a TTY is active.

   ssh(1): キーストロークのタイミングの不明瞭化を有効にするかを
   決定する際に, TTY が有効なチャンネルのみで有効にする.

 * ssh(1): switch mainloop from poll(3) to ppoll(3) and mask signals
   before checking flags set in signal handler. Avoids potential
   race condition between signaling ssh to exit and polling. bz3531

   ssh(1): メインループを poll(3) から ppoll(3) に変更し, 
   シグナルハンドラーで設定されるフラグをチェックする前にシグナルを
   マスクする. ssh へのシグナルでの終了とポーリング間でありえた
   レースコンディションを避ける. bz3531
 
 * ssh(1): when connecting to a destination with both the
   AddressFamily and CanonicalizeHostname directives in use,
   the AddressFamily directive could be ignored. bz5326

   ssh(1): AddressFamily と CanonicalizeHostname 設定項目の両方が
   設定されている接続先に接続する際 AddressFamily が無視される
   bz5326(訳注: bz3526 が正しい)

 * sftp(1): correct handling of the limits@openssh.com option when
   the server returned an unexpected message.

   sftp(1): サーバーが予期せぬメッセージを返した場合の
   limits@openssh.com の扱いを修正する.

 * A number of fixes to the PuTTY and Dropbear regress/integration
   tests.

   PuTTY と Dropbear の回帰/結合テストを多数修正

 * ssh(1): release GSS OIDs only at end of authentication, avoiding
   unnecessary init/cleanup cycles. bz2982

   ssh(1): 認証の最後にのみ GSS OID を解放する.
   不要な初期化/クリーンアップサイクルを行なわないようにするため.
   bz2982

 * ssh_config(5): mention "none" is a valid argument to IdentityFile
   in the manual. bz3080

   ssh_config(5): マニュアルでの IdentityFile の正当な引数として
   "none" を記述する. bz3080

 * scp(1): improved debugging for paths from the server rejected for
   not matching the client's glob(3) pattern in old SCP/RCP protocol
   mode.

   scp(1): 古い SCP/RCP プロトコルモードでのクライアントの glob(3)
   パターンにマッチしないためにサーバーから拒否されたパスの
   デバッグを改良する.

 * ssh-agent(1): refuse signing operations on destination-constrained
   keys if a previous session-bind operation has failed. This may
   prevent a fail-open situation in future if a user uses a mismatched
   ssh(1) client and ssh-agent(1) where the client supports a key type
   that the agent does not support.

   ssh-agent(1): 以前のセッションに束縛された操作が失敗した場合,
   接続先が制限された鍵での署名操作を拒否する. 
   エージェントがサポートしていない鍵のタイプをクライアントがサポートしている
   バージョンが一致しない ssh(1) と ssh-agent(1) をユーザーが利用する場合に
   fail-open を防ぐことができる.

Portability
-----------

移植性

 * Better identify unsupported and unstable compiler flags, such as
   -fzero-call-used-regs which has been unstable across a several
   clang releases.

   サポートされていないかつ不安定なコンパイラのフラグを識別しやすくした.
   いくつかの clang のリリースで不安定となっている
   -fzero-call-used-regs など.

 * A number of fixes to regression test reliability and log
   collection.

   回帰テストの信頼性とログの回収での多くの修正

 * Update the OpenSSL dependency in the RPM specification.

   RPM 仕様での OpenSSL 依存性を更新する

 * sshd(8): for OpenSolaris systems that support privilege limitation
   via the getpflags() interface, prefer using the newer PRIV_XPOLICY
   to PRIV_LIMIT. bz2833

   sshd(8): OpenSolaris システムで getpflags()
   インターフェイスを利用する特権制限をサポートする.
   PRIV_LIMIT よりも より新しい PRIV_XPOLICY を利用する .

OpenSSH 9.4p1 がリリースされました

10 Aug, 2023 - 5 minutes

2023/08/10, OpenSSH 9.4p1 がリリースされました.

バグ修正中心のリリースです.


https://www.openssh.com/releasenotes.html#9.4p1

Changes since OpenSSH 9.3p2
===========================

OpenSSH 9.3p2 からの変更点

This release fixes a number of bugs and adds some small features.

このリリースは多数のバグを修正しいくつかの小さい特徴を追加する.

Potentially incompatible changes
--------------------------------

潜在的に非互換の変更点

 * This release removes support for older versions of libcrypto.
   OpenSSH now requires LibreSSL >= 3.1.0 or OpenSSL >= 1.1.1.
   Note that these versions are already deprecated by their upstream
   vendors.

   このリリースは libcrypto の古いバージョンのサポートを除く.
   OpenSSH は LibreSSL >= 3.1.0 か OpenSSL >= 1.1.1 を必要とする.
   除かれたバージョンは, それぞれの上流のベンダーによって既に
   非推奨となっている点に注意.

 * ssh-agent(1): PKCS#11 modules must now be specified by their full
   paths. Previously dlopen(3) could search for them in system
   library directories.

   ssh-agent(1): PKCS#11 モジュールは, そのフルパスによって指定され
   なければならなくなる. 以前は dlopen(3) はシステムのライブラリ
   ディレクトリ中のモジュールを検索できた.

New features
------------

新機能

 * ssh(1): allow forwarding Unix Domain sockets via ssh -W.

   ssh(1): ssh -W によって Unix ドメインソケットの転送が
   できる.

 * ssh(1): add support for configuration tags to ssh(1).
   This adds a ssh_config(5) "Tag" directive and corresponding
   "Match tag" predicate that may be used to select blocks of
   configuration similar to the pf.conf(5) keywords of the same
   name.

   ssh(1): ssh(1) に対する設定タグのサポートを追加する.
   同じ名前の pf.conf(5) と同様の設定のブロックを用いるのに
   利用できる ssh_config(5) の "Tag" 設定項目と関連する 
   "Match tag" 述語を追加する. 

 * ssh(1): add a "match localnetwork" predicate. This allows matching
   on the addresses of available network interfaces and may be used to
   vary the effective client configuration based on network location.

   "match localnetwork" 述語を追加する. ネットワークロケーション
   に基づく効率的なクライアント設定の変更のために利用できる
   利用可能なネットワークインターフェイスのアドレスのマッチングを
   可能にする.

 * ssh(1), sshd(8), ssh-keygen(1): infrastructure support for KRL
   extensions.  This defines wire formats for optional KRL extensions
   and implements parsing of the new submessages. No actual extensions
   are supported at this point.

   ssh(1), sshd(8), ssh-keygen(1): KRL 拡張の基盤サポート. 選択可能な
   KRL 拡張の通信フォーマットを定義し, 新しいサブメッセージのパースを
   実装する. 現時点では実際の拡張はサポートされていない.

 * sshd(8): AuthorizedPrincipalsCommand and AuthorizedKeysCommand now
   accept two additional %-expansion sequences: %D which expands to
   the routing domain of the connected session and %C which expands
   to the addresses and port numbers for the source and destination
   of the connection.

   sshd(8): AuthorizedPrincipalsCommand と AuthorizedKeysCommand が
   2 つの追加の %-拡張シーケンスを受けつける: %D は接続セッションの
   ルーティングドメインに展開される. %C は 接続元/先のアドレスとポート
   番号に展開される.

 * ssh-keygen(1): increase the default work factor (rounds) for the
   bcrypt KDF used to derive symmetric encryption keys for passphrase
   protected key files by 50%.

   ssh-keygen(1): パスフレーズで保護される鍵の共通暗号鍵を導出
   するのに用いられる bcrypt KDF のデフォルトの work factor (ラウンド)
   を 50% 増やす.

Bugfixes
--------

バグ修正

 * ssh-agent(1): improve isolation between loaded PKCS#11 modules
   by running separate ssh-pkcs11-helpers for each loaded provider.

   ssh-agent(1): それぞれのロードされたプロバイダごとに
   別々の ssh-pkcs11-helpers を実行することで ロードされた PKCS#11
   モジュール間の分離を改善する.

 * ssh(1): make -f (fork after authentication) work correctly with
   multiplexed connections, including ControlPersist. bz3589 bz3589

   ssh(1):  -f (認証後の fork) がControlPersist を含む多重化された接続で
   正しく動作する. bz3589

 * ssh(1): make ConnectTimeout apply to multiplexing sockets and not
   just to network connections.

   ssh(1): ConnectTimeout を ネットワーク接続にではなく
   多重化されたソケットへ適用させる.

 * ssh-agent(1), ssh(1): improve defences against invalid PKCS#11
   modules being loaded by checking that the requested module
   contains the required symbol before loading it.

   ssh-agent(1), ssh(1): ロード前に必要なシンボルを含む要求された
   モジュールかをチェックしてロードするようにして
   不正な PKCS#11 モジュールに対する防御を改善する.

 * sshd(8): fix AuthorizedPrincipalsCommand when AuthorizedKeysCommand
   appears before it in sshd_config. Since OpenSSH 8.7 the
   AuthorizedPrincipalsCommand directive was incorrectly ignored in
   this situation. bz3574

   sshd(8): sshd_config で  AuthorizedKeysCommand が
   AuthorizedPrincipalsCommand より前に出現する場合の AuthorizedPrincipalsCommand
   を修正する. OpenSSH 8.7 より この状況では AuthorizedPrincipalsCommand 
   設定項目は不正に無視されていた. bz3574

 * sshd(8), ssh(1), ssh-keygen(1): remove vestigal support for KRL
   signatures When the KRL format was originally defined, it included
   support for signing of KRL objects. However, the code to sign KRLs
   and verify KRL signatues was never completed in OpenSSH. This
   release removes the partially-implemented code to verify KRLs.
   All OpenSSH tools now ignore KRL_SECTION_SIGNATURE sections in
   KRL files.

   sshd(8), ssh(1), ssh-keygen(1): KRL 署名の名残りのサポートを削除する.
   KRL フォーマットが元々定義されたとき, KRL オブジェクトの署名の
   サポートが含まれていた. しかし, KRL の署名と KRL 署名の検証のコードは
   OpenSSH では完了することはなかった. このリリースで KRL を検証する
   部分的に実装されたコードを削除する. すべての OpenSSH ツールは
   KRL ファイルの KRL_SECTION_SIGNATURE 節を無視する.

 * All: fix a number of memory leaks and unreachable/harmless integer
   overflows.

   All: 多数のメモリリークと到達しない/害のない整数オーバーフローを
   修正する.

 * ssh-agent(1), ssh(1): don't truncate strings logged from PKCS#11
   modules; GHPR406

   ssh-agent(1), ssh(1): PKCS#11 モジュールからログされる文字列を
   切り詰めない; GHPR406

 * sshd(8), ssh(1): better validate CASignatureAlgorithms in
   ssh_config and sshd_config. Previously this directive would accept
   certificate algorithm names, but these were unusable in practice as
   OpenSSH does not support CA chains. bz3577

   sshd(8), ssh(1): ssh_config と sshd_config での CASignatureAlgorithms
   の検証を改善する. 以前はこの設定項目は証明書のアルゴリズム名を
   受け付けていたが, OpenSSH が CA チェーンをサポートしていない場合
   実際には不安定だった. bz3577

 * ssh(1): make `ssh -Q CASignatureAlgorithms` only list signature
   algorithms that are valid for CA signing. Previous behaviour was
   to list all signing algorithms, including certificate algorithms.

   ssh(1): `ssh -Q CASignatureAlgorithms` は CA 署名で正当な
   アルゴリズムのみを列挙するようになる. 以前の動作は,
   証明書のアルゴリズムを含むすべての署名アルゴリズムを列挙していた.

 * ssh-keyscan(1): gracefully handle systems where rlimits or the
   maximum number of open files is larger than INT_MAX; bz3581

   ssh-keyscan(1): INT_MAX よりも大きな rlimits や ファイルの最大
   オープン数のシステムを慈悲深く取り扱う; bz3581

 * ssh-keygen(1): fix "no comment" not showing on when running
   `ssh-keygen -l` on multiple keys where one has a comment and other
   following keys do not. bz3580

   ssh-keygen(1): 1つはコメントを持ちそれ以外の続く鍵が持たない場合に
   複数の鍵に対する `ssh-keygen -l` を実行した再に "no comment" が
   表示されないのを修正する. bz3580

 * scp(1), sftp(1): adjust ftruncate() logic to handle servers that
   reorder requests. Previously, if the server reordered requests then
   the resultant file would be erroneously truncated.

   scp(1), sftp(1): リクエストを再送するサーバを扱う ftruncate() ロジック
   を調整する. 以前は, サーバがリクエストを再送信すると結果のファイルは
   誤って切り詰められていた.

 * ssh(1): don't incorrectly disable hostname canonicalization when
   CanonicalizeHostname=yes and ProxyJump was expicitly set to
   "none". bz3567

   ssh(1): CanonicalizeHostname=yes で ProxyJump が明示的に "none" に
   設定されている場合, ホスト名の正規化を誤って無効にしないようにする.
   bz3567

 * scp(1): when copying local->remote, check that the source file
   exists before opening an SFTP connection to the server. Based on
   GHPR#370

   scp(1): ローカルからリモートに転送する再, サーバに SFTP 接続を
   する前に ソースファイルが存在するか検査する. GHPR#370 をベースに
   している.

Portability
-----------

移植性

 * All: a number of build fixes for various platforms and
   configuration combinations.

   All: 様々なプラットフォームと設定の組合せで多数のビルドの問題を
   修正.

 * sshd(8): provide a replacement for the SELinux matchpathcon()
   function, which is deprecated.

   sshd(8): 非推奨となった SELinux matchpathcon() 関数の
   代替を提供する.

 * All: relax libcrypto version checks for OpenSSL >=3. Beyond
   OpenSSL 3.0, the ABI compatibility guarantees are wider (only
   the library major must match instead of major and minor in
   earlier versions).  bz#3548.

   OpenSSL >= 3 での libcrypto バージョンチェックを緩和する
   OpenSSL 3.0 より先では, ABI の互換性保証はより拡大している
   (以前のバージョンでは, ライブラリのメジャーバージョンのみが
   一致しなければならなかった. 現在は メジャーとマイナーが一致しな
   ければならない). bz#3548

 * Tests: fix build problems for the sk-dummy.so FIDO provider module
   used in some tests.

   テスト: いくつかのテストで用いられる sk-dummy.so FIDO プロバイダ
   のビルドの問題を修正する.

OpenSSH 9.4 リリース準備中 / Call for testing: OpenSSH 9.4

31 Jul, 2023 - 5 minutes

OpenSSH 9.4 がリリース準備中です.

Call for testing: OpenSSH 9.4

https://lists.mindrot.org/pipermail/openssh-unix-dev/2023-July/040872.html

Changes since OpenSSH 9.3p2
===========================

OpenSSH 9.3p2 からの変更点

This release fixes a number of bugs and adds some small features.

このリリースは多数のバグを修正しいくつかの小さい特徴を追加する.

Potentially incompatible changes
--------------------------------

潜在的に非互換の変更点

 * This release removes support for older versions of libcrypto.
   OpenSSH now requires LibreSSL >= 3.1.0 or OpenSSL >= 1.1.1.
   Note that these versions are already deprecated by their upstream
   vendors.

   このリリースは libcrypto の古いバージョンのサポートを除く.
   OpenSSH は LibreSSL >= 3.1.0 か OpenSSL >= 1.1.1 を必要とする.
   除かれたバージョンは, それぞれの上流のベンダーによって既に
   非推奨となっている点に注意.

 * ssh-agent(1): PKCS#11 modules must now be specified by their full
   paths. Previously dlopen(3) could search for them in system
   library directories.

   ssh-agent(1): PKCS#11 モジュールは, そのフルパスによって指定され
   なければならなくなる. 以前は dlopen(3) はシステムのライブラリ
   ディレクトリ中のモジュールを検索できた.

New features
------------

新機能

 * ssh(1): allow forwarding Unix Domain sockets via ssh -W.

   ssh(1): ssh -W によって Unix ドメインソケットの転送が
   できる.

 * ssh(1): add support for configuration tags to ssh(1).
   This adds a ssh_config(5) "Tag" directive and corresponding
   "Match tag" predicate that may be used to select blocks of
   configuration similar to the pf.conf(5) keywords of the same
   name.

   ssh(1): ssh(1) に対する設定タグのサポートを追加する.
   同じ名前の pf.conf(5) と同様の設定のブロックを用いるのに
   利用できる ssh_config(5) の "Tag" 設定項目と関連する 
   "Match tag" 述語を追加する. 

 * ssh(1): add a "match localnetwork" predicate. This allows matching
   on the addresses of available network interfaces and may be used to
   vary the effective client configuration based on network location.

   "match localnetwork" 述語を追加する. ネットワークロケーション
   に基づく効率的なクライアント設定の変更のために利用できる
   利用可能なネットワークインターフェイスのアドレスのマッチングを
   可能にする.

 * ssh(1), sshd(8), ssh-keygen(1): infrastructure support for KRL
   extensions.  This defines wire formats for optional KRL extensions
   and implements parsing of the new submessages. No actual extensions
   are supported at this point.

   ssh(1), sshd(8), ssh-keygen(1): KRL 拡張の基盤サポート. 選択可能な
   KRL 拡張の通信フォーマットを定義し, 新しいサブメッセージのパースを
   実装する. 現時点では実際の拡張はサポートされていない.

 * sshd(8): AuthorizedPrincipalsCommand and AuthorizedKeysCommand now
   accept two additional %-expansion sequences: %D which expands to
   the routing domain of the connected session and %C which expands
   to the addresses and port numbers for the source and destination
   of the connection.

   sshd(8): AuthorizedPrincipalsCommand と AuthorizedKeysCommand が
   2 つの追加の %-拡張シーケンスを受けつける: %D は接続セッションの
   ルーティングドメインに展開される. %C は 接続元/先のアドレスとポート
   番号に展開される.

 * ssh-keygen(1): increase the default work factor (rounds) for the
   bcrypt KDF used to derive symmetric encryption keys for passphrase
   protected key files by 50%.

   ssh-keygen(1): パスフレーズで保護される鍵の共通暗号鍵を導出
   するのに用いられる bcrypt KDF のデフォルトの work factor (ラウンド)
   を 50% 増やす.

Bugfixes
--------

バグ修正

 * ssh-agent(1): improve isolation between loaded PKCS#11 modules
   by running seperate ssh-pkcs11-helpers for each loaded provider.

   ssh-agent(1): それぞれのロードされたプロバイダごとに
   別々の ssh-pkcs11-helpers を実行することで ロードされた PKCS#11
   モジュール間の分離を改善する.

 * ssh(1): make -f (fork after authentication) work correctly with
   multiplexed connections, including ControlPersist. bz3589 bz3589

   ssh(1):  -f (認証後の fork) がControlPersist を含む多重化された接続で
   正しく動作する. bz3589

 * ssh-agent(1), ssh(1): improve defences against invalid PKCS#11
   modules being loaded by checking that the requested module
   contains the required symbol before loading it.

   ssh-agent(1), ssh(1): ロード前に必要なシンボルを含む要求された
   モジュールかをチェックしてロードするようにして
   不正な PKCS#11 モジュールに対する防御を改善する.

 * sshd(8): fix AuthorizedPrincipalsCommand when AuthorizedKeysCommand
   appears before it in sshd_config. Since OpenSSH 8.7 the
   AuthorizedPrincipalsCommand directive was incorrectly ignored in
   this situation. bz3574

   sshd(8): sshd_config で  AuthorizedKeysCommand が
   AuthorizedPrincipalsCommand より前に出現する場合の AuthorizedPrincipalsCommand
   を修正する. OpenSSH 8.7 より この状況では AuthorizedPrincipalsCommand 
   設定項目は不正に無視されていた. bz3574

 * sshd(8), ssh(1), ssh-keygen(1): remove vestigal support for KRL
   signatures When the KRL format was originally defined, it included
   support for signing of KRL objects. However, the code to sign KRLs
   and verify KRL signatues was never completed in OpenSSH. This
   release removes the partially-implemented code to verify KRLs.
   All OpenSSH tools now ignore KRL_SECTION_SIGNATURE sections in
   KRL files.

   sshd(8), ssh(1), ssh-keygen(1): KRL 署名の名残りのサポートを削除する.
   KRL フォーマットが元々定義されたとき, KRL オブジェクトの署名の
   サポートが含まれていた. しかし, KRL の署名と KRL 署名の検証のコードは
   OpenSSH では完了することはなかった. このリリースで KRL を検証する
   部分的に実装されたコードを削除する. すべての OpenSSH ツールは
   KRL ファイルの KRL_SECTION_SIGNATURE 節を無視する.

 * All: fix a number of memory leaks and unreachable/harmless integer
   overflows.

   All: 多数のメモリリークと到達しない/害のない整数オーバーフローを
   修正する.

 * ssh-agent(1), ssh(1): don't truncate strings logged from PKCS#11
   modules; GHPR406

   ssh-agent(1), ssh(1): PKCS#11 モジュールからログされる文字列を
   切り詰めない; GHPR406

 * sshd(8), ssh(1): better validate CASignatureAlgorithms in
   ssh_config and sshd_config. Previously this directive would accept
   certificate algorithm names, but these were unusable in practice as
   OpenSSH does not support CA chains. bz3577

   sshd(8), ssh(1): ssh_config と sshd_config での CASignatureAlgorithms
   の検証を改善する. 以前はこの設定項目は証明書のアルゴリズム名を
   受け付けていたが, OpenSSH が CA チェーンをサポートしていない場合
   実際には不安定だった. bz3577

 * ssh(1): make `ssh -Q CASignatureAlgorithms` only list signature
   algorithms that are valid for CA signing. Previous behaviour was
   to list all signing algorithms, including certificate algorithms.

   ssh(1): `ssh -Q CASignatureAlgorithms` は CA 署名で正当な
   アルゴリズムのみを列挙するようになる. 以前の動作は,
   証明書のアルゴリズムを含むすべての署名アルゴリズムを列挙していた.

 * ssh-keyscan(1): gracefully handle systems where rlimits or the
   maximum number of open files is larger than INT_MAX; bz3581

   ssh-keyscan(1): INT_MAX よりも大きな rlimits や ファイルの最大
   オープン数のシステムを慈悲深く取り扱う; bz3581

 * ssh-keygen(1): fix "no comment" not showing on when running
   `ssh-keygen -l` on multiple keys where one has a comment and other
   following keys do not. bz3580

   ssh-keygen(1): 1つはコメントを持ちそれ以外の続く鍵が持たない場合に
   複数の鍵に対する `ssh-keygen -l` を実行した再に "no comment" が
   表示されないのを修正する. bz3580

 * scp(1), sftp(1): adjust ftruncate() logic to handle servers that
   reorder requests. Previously, if the server reordered requests then
   the resultant file would be erroneously truncated.

   scp(1), sftp(1): リクエストを再送するサーバを扱う ftruncate() ロジック
   を調整する. 以前は, サーバがリクエストを再送信すると結果のファイルは
   誤って切り詰められていた.

 * ssh(1): don't incorrectly disable hostname canonicalization when
   CanonicalizeHostname=yes and ProxyJump was expicitly set to
   "none". bz3567

   ssh(1): CanonicalizeHostname=yes で ProxyJump が明示的に "none" に
   設定されている場合, ホスト名の正規化を誤って無効にしないようにする.
   bz3567

 * scp(1): when copying local->remote, check that the source file
   exists before opening an SFTP connection to the server. Based on
   GHPR#370

   scp(1): ローカルからリモートに転送する再, サーバに SFTP 接続を
   する前に ソースファイルが存在するか検査する. GHPR#370 をベースに
   している.

Portability
-----------

移植性

 * All: a number of build fixes for various platforms and
   configuration combinations.

   All: 様々なプラットフォームと設定の組合せで多数のビルドの問題を
   修正.

 * sshd(8): provide a replacement for the SELinux matchpathcon()
   function, which is deprecated.

   sshd(8): 非推奨となった SELinux matchpathcon() 関数の
   代替を提供する.

 * All: relax libcrypto version checks for OpenSSL >=3. Beyond
   OpenSSL 3.0, the ABI compatibility guarantees are wider (only
   the library major must match instead of major and minor in
   earlier versions).  bz#3548.

   OpenSSL >= 3 での libcrypto バージョンチェックを緩和する
   OpenSSL 3.0 より先では, ABI の互換性保証はより拡大している
   (以前のバージョンでは, ライブラリのメジャーバージョンのみが
   一致しなければならなかった. 現在は メジャーとマイナーが一致しな
   ければならない). bz#3548

 * Tests: fix build problems for the sk-dummy.so FIDO provider module
   used in some tests.

   テスト: いくつかのテストで用いられる sk-dummy.so FIDO プロバイダ
   のビルドの問題を修正する.

OpenSSH 9.3p2 がリリースされました

19 Jul, 2023 - 2 minutes

2023/07/19, OpenSSH 9.3p2 がリリースされました.

セキュリティバグの修正のリリースです.

# https://www.openssh.com/releasenotes.html#9.3p2

Changes since OpenSSH 9.3
=========================

OpenSSH 9.3 からの変更点

This release fixes a security bug.

このリリースはセキュリティのバグを修正する.

Security
========

セキュリティ

Fix CVE-2023-38408 - a condition where specific libaries loaded via
ssh-agent(1)'s PKCS#11 support could be abused to achieve remote
code execution via a forwarded agent socket if the following
conditions are met:

CVE-2023-38408 - ssh-agent(1) の PKCS#11 サポートによって
ロードされる特定のライブラリが, 次の場合に, 転送された
エージェントのソケットを介してリモートでのコード実行するのに
悪用される可能性がある状況を修正する.

* Exploitation requires the presence of specific libraries on
  the victim system.
* Remote exploitation requires that the agent was forwarded
  to an attacker-controlled system.

* 悪用には被害を受けるシステム上に特定のライブラリが必要
* リモートでの悪用には, 攻撃者が管理するシステムへのエージェントの
  転送が必要

Exploitation can also be prevented by starting ssh-agent(1) with an
empty PKCS#11/FIDO allowlist (ssh-agent -P '') or by configuring
an allowlist that contains only specific provider libraries.

悪用は, ssh-agent(1) を 空の PKCS#11/FIDO 許可リスト (ssh-agent -P '')
で起動したり, 特定のプロバイダのライブラリのみを含む許可リストを設定
することでも防げる.

This vulnerability was discovered and demonstrated to be exploitable
by the Qualys Security Advisory team. 

この脆弱性は Qualys Security Advisory team によって発見され,
悪用可能なことが示された.
 
In addition to removing the main precondition for exploitation,
this release removes the ability for remote ssh-agent(1) clients
to load PKCS#11 modules by default (see below).

悪用の主要な事前条件を除くのに加えて, このリリースは
リモートの ssh-agent(1) のクライアントが PKCS#11リモートモジュールを
ロードする機能をデフォルトで無効にする (次を参照).

Potentially-incompatible changes
--------------------------------

潜在的に非互換な変更

 * ssh-agent(8): the agent will now refuse requests to load PKCS#11
   modules issued by remote clients by default. A flag has been added
   to restore the previous behaviour "-Oallow-remote-pkcs11".

   ssh-agent(8): エージェントはデフォルトでリモートのクライアントから
   発行された PKCS#11 モジュールのロードの要求を拒否する.
   以前の動作を回復するための "-Oallow-remote-pkcs11" フラグが
   追加される.

   Note that ssh-agent(8) depends on the SSH client to identify
   requests that are remote. The OpenSSH >=8.9 ssh(1) client does
   this, but forwarding access to an agent socket using other tools
   may circumvent this restriction.

   ssh-agent(8) はリモートからの要求を識別するのに SSH クライアントに
   依存していることに注意. OpenSSH >= 8.9 の ssh(1) クライアントは
   これを行なうが, 他のツールを用いたエージェントソケットへの転送アクセス
   はこの制限を回避するかもしれない.

OpenSSH 9.3 リリース準備中 / Call for testing: OpenSSH 9.3

10 Mar, 2023 - 2 minutes

OpenSSH 9.3 がリリース準備中です.

Call for testing: OpenSSH 9.3

いまのところは大きな変化がないリリースとなりそうです.

# 暫定版: https://lists.mindrot.org/pipermail/openssh-unix-dev/2023-March/040628.html

Changes since OpenSSH 9.2
=========================

OpenSSH 9.2 からの変更点

New features
------------

新機能

 * ssh-keygen(1), ssh-keyscan(1): accept -Ohashalg=sha1|sha256 when
   outputting SSHFP fingerprints to allow algorithm selection. bz3493

   ssh-keygen(1), ssh-keyscan(1): アルゴリズムの選択を許すため
   SSHFP 指紋の出力時に -Ohashalg で sha1 か sha256 を許可する. bz3493
   (デフォルトでは両方出力される)
    
 * sshd(8): add a `sshd -G` option that parses and prints the
   effective configuration without attempting to load private keys
   and perform other checks. This allows usage of the option before
   keys have been generated and for configuration evaluation and
   verification by unprivileged users.

   sshd(8): `sshd -G` オプションを追加する. これは, 秘密鍵のロードや
   他のチェックの実行なしで有効な設定をパースし出力する.
   鍵が生成される前や, 設定の評価, 非特権ユーザによる検証に
   このオプションは利用できる.

Bugfixes
--------

バグ修正

 * scp(1), sftp(1): fix progressmeter corruption on wide displays;
   bz3534

   scp(1), sftp(1): 広いディスプレイでのプログレスメーターの問題を修正
   bz3534

 * ssh-add(1), ssh-keygen(1): use RSA/SHA256 when testing usability
   of private keys as some systems are starting to disable RSA/SHA1
   in libcrypto.

   ssh-add(1), ssh-keygen(1): 一部のシステムで libcrypto の RSA/SHA1
   が無効化され始めているので, 秘密鍵の利用可能性のテストに
   RSA/SHA256 を利用する.

 * sftp-server(8): fix a memory leak. GHPR363

   sftp-server(8): メモリリークを修正する. GHPR363

 * ssh(1), sshd(8), ssh-keyscan(1): remove vestigal protocol
   compatibility code and simplify what's left.

   ssh(1), sshd(8), ssh-keyscan(1): 名残りで残っていたプロトコル
   互換性コードを除去し, 残ったものを単純化する.

 * Fix a number of low-impact Coverity static analysis findings.
   
   Coverity 静的解析探索で見付かった低インパクトの問題を
   いくつか修正する.

 * ssh_config(5), sshd_config(5): mention that some options are not
   first-match-wins.

   ssh_config(5), sshd_config(5): 一部のオプションは最初にマッチしたものが
   使われるわけではないことを言及する.

 * Rework logging for the regression tests. Regression tests will now
   capture separate logs for each ssh and sshd invocation in a test.

   再帰テストのログを再度動くようにする. 再帰テストは今やテストでの
   それぞれの ssh と sshd の工藤で別々のログを捕捉するようになる.

 * ssh(1): make `ssh -Q CASignatureAlgorithms` work as the manpage
   says it should; bz3532.

   ssh(1): `ssh -Q CASignatureAlgorithms` を man にあるように動くように
   する; bz3532

 * ssh(1): ensure that there is a terminating newline when adding a
   new entry to known_hosts; bz3529

   ssh(1): known_hosts に新しいエントリを追加する際, 終端の改行がある
   のを保証する; bz3529

Portability
-----------

移植性

 * sshd(8): harden Linux seccomp sandbox. Move to an allowlist of
   mmap(2), madvise(2) and futex(2) flags, removing some concerning
   kernel attack surface.

   sshd(8): Linux の seccomp サンドボックスを教科する. 
   mmap(2) と madvise(2), futex(2) フラグの許可リストへ移動し,
   いくつかの関連するカーネル攻撃の対象を除去する.

 * sshd(8): improve Linux seccomp-bpf sandbox for older systems;
   bz3537

   sshd(8): 古いシステムに対する seccomp-bpf サンドボックスを
   改善する; bz3537

OpenSSH 9.1 リリース準備中 / Call for testing: OpenSSH 9.1

28 Sep, 2022 - 8 minutes

OpenSSH 9.1 がリリース準備中です.

Call for testing: openssh-9.1

バグ修正のリリースです.

https://lists.mindrot.org/pipermail/openssh-unix-dev/2022-September/040428.html

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 not 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; GHPR#322

   全て: OpenSSL >=3.x に対して 1.1x API 互換性を要求する; GHPR#322

 * 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 でタイムゾーンのデータをキャッシュする.