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

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

10 Feb, 2022 - 9 minutes

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

Call for testing: OpenSSH 8.9

ssh-agent に鍵を追加する際に転送の制限を可能にする SSH agent restriction が入ります.

Future deprecation notice
=========================

将来廃止される機能の告知

A near-future release of OpenSSH will switch scp(1) from using the
legacy scp/rcp protocol to using SFTP by default.

OpenSSH の近い将来のリリースで 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" プロトコル拡張で
サポートする.

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

潜在的に非互換な変更

 * sshd(8), portable OpenSSH only: this release removes in-built
   support for MD5-hashed passwords. If you require these on your
   system then we recommend linking against libxcrypt or similar.

   sshd(8), 移植版 OpenSSH のみ: このリリースで MD5 ハッシュされた
   パスワードの組込みサポートを除く. システムで必要ならば,
   libxcrypt や同様なものをリンクするのを推奨する.

 * This release modifies the FIDO security key middleware interface
   and increments SSH_SK_VERSION_MAJOR.

   このリリースは, FIDO セキュリティキーミドルウェアを変更し,
   SSH_SK_VERSION_MAJOR を増加する.

Changes since OpenSSH 8.8
=========================

OpenSSH 8.8 からの変更点

This release includes a number of new features.

このリリースはいくつかの新機能を含んでいる.

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

新機能

 * ssh(1), sshd(8), ssh-add(1), ssh-agent(1): add a system for
   restricting forwarding and use of keys added to ssh-agent(1)
   A detailed description of the feature is available at
   https://www.openssh.com/agent-restrict.html and the protocol
   extensions are documented in the PROTOCOL and PROTOCOL.agent
   files in the source release.

   ssh(1), sshd(8), ssh-add(1), ssh-agent(1): ssh-agent(1) に追加
   される鍵の転送と利用を制限するシステムを追加する. この昨日の
   詳細な記述は https://www.openssh.com/agent-restrict.html で
   利用可能で, プロトコル拡張は ソースリリース中の
   PROTOCOL と PROTOCOL.agent ファイルに記述される.

 * ssh(1), sshd(8): add the sntrup761x25519-sha512@openssh.com hybrid
   ECDH/x25519 + Streamlined NTRU Prime post-quantum KEX to the
   default KEXAlgorithms list (after the ECDH methods but before the
   prime-group DH ones).

   ssh(1), sshd(8): sntrup761x25519-sha512@openssh.com ハイブリッド
   ECDH/x25519 + Streamlined NTRU Prime post-quantum 鍵交換を
   デフォルトの KEXAlgorithms リストに (EDCH 法の後で素数群 DH
   のものの前) に追加する.

 * ssh-keygen(1): when downloading resident keys from a FIDO token,
   pass back the user ID that was used when the key was created and
   append it to the filename the key is written to (if it is not the
   default). Avoids keys being clobbered if the user created multiple
   resident keys with the same application string but different user
   IDs.

   ssh-keygen(1): FIDO トークンから resident key をダウンロードする際,
   鍵が作成された時に利用されたユーザ ID を渡し, 鍵が書き込まれるファイル名に
   追記する (もしそれがデフォルトでないなら). ユーザーが複数の resident
   鍵を同じアプリケーション文字列だが異なるユーザ ID で作成した場合に
   鍵を破壊するのを防ぐ.

 * ssh-keygen(1), ssh(1), ssh-agent(1): better handling for FIDO keys
   on tokens that provide user verification (UV) on the device itself,
   including biometric keys, avoiding unnecessary PIN prompts.

 * ssh-keygen(1), ssh(1), ssh-agent(1): 不必要な PIN の入力を避けるために
   生体キーを含むデバイス自身でユーザ検証 (UV) を提供するトークン上の
   FIDO 鍵をよりよく扱う.

 * ssh-keygen(1): add "ssh-keygen -Y match-principals" operation to
   perform matching of principals names against an allowed signers
   file. To be used towards a TOFU model for SSH signatures in git.

   ssh-keygen(1): "ssh-keygen -Y match-principals" 操作を追加する.
   許可された署名者に対し principals 名でのマッチを実行する.
   git での SSH 署名の TOFU モデルに対して利用される.

 * ssh-add(1), ssh-agent(1): allow pin-required FIDO keys to be added
   to ssh-agent(1). $SSH_ASKPASS will be used to request the PIN at
   authentication time.

   ssh-add(1), ssh-agent(1): PIN が必要な FIDO 鍵を ssh-agent(1) に
   追加できるようにする. $SSH_ASKPASS が認証時の PIN を要求するのに
   用いられる.

 * ssh-keygen(1): allow selection of hash at sshsig signing time
   (either sha512 (default) or sha256).

   ssh-keygen(1): sshsig の署名時にハッシュを選択できる
   (sha512 (デフォルト) か sha256).

 * ssh(1), sshd(8): read network data directly to the packet input
   buffer instead indirectly via a small stack buffer. Provides a
   modest performance improvement.

   ssh(1), sshd(8): 小さなスタックバッファから非直接にではなく,
   パケット入力バッファから直接ネットワークデータを読み込む.
   ちょっとしたパフォーマンスの向上を提供する.

 * ssh(1), sshd(8): read data directly to the channel input buffer,
   providing a similar modest performance improvement.

   ssh(1), sshd(8): チャンネル入力バッファから直接データを読み込む.
   同様にちょっとしたパフォーマンスの向上を提供する.

 * ssh(1): extend the PubkeyAuthentication configuration directive to
   accept yes|no|unbound|host-bound to allow control over one of the
   protocol extensions used to implement agent-restricted keys.

   ssh(1): PubkeyAuthentication 設定項目を拡張し, yes|no|unbound|host-bound
   を受けとるようになる. agent に制限された鍵を実装するのに用いられる
   プロトコル拡張のうちの 1 つを指定して制御できるようになる.

Bugfixes
--------

バグ修正

 * sshd(8): document that CASignatureAlgorithms, ExposeAuthInfo and
   PubkeyAuthOptions can be used in a Match block. PR#277.

   sshd(8): CASignatureAlgorithms と ExposeAuthInfo, PubkeyAuthOptions が
   Match ブロック内で利用できることを文書化. PR#277.

 * ssh-keysign(1): unbreak for KEX algorithms that use SHA384/512
   exchange hashes

   ssh-keysign(1): SHA384/512 交換ハッシュを用いる鍵交換アルゴリズムを
   について修正する.

 * ssh(1): don't put the TTY into raw mode when SessionType=none,
   avoids ^C being unable to kill such a session. bz3360

   ssh(1): SessionType=none の場合に raw モードに TTY が入らないようにし,
   そのようなセッションを ^C で kill できないのを防ぐ. bz3360

 * scp(1): fix some corner-case bugs in SFTP-mode handling of
   ~-prefixed paths.

   scp(1): SFTP モードでの ~ が先頭のパスの扱いのいくつかの
   コーナーケースのバグを修正する.

 * ssh(1): unbreak hostbased auth using RSA keys. Allow ssh(1) to
   select RSA keys when only RSA/SHA2 signature algorithms are
   configured (this is the default case). Previously RSA keys were
   not being considered in the default case.

   ssh(1): RSA 鍵を用いるホストベース認証を直す. ssh(1) で
   RSA/SHA2 署名アルゴリズムのみが設定された場合に (これがデフォルトの場合)
   RSA 鍵を選択できるようにする. 以前は RSA 鍵はデフォルトの場合に
   考慮されていなかった.

 * ssh-keysign(1): make ssh-keysign use the requested signature
   algorithm and not the default for the key type. Part of unbreaking
   hostbased auth for RSA/SHA2 keys.

   ssh-keysign(1): ssh-keysign が要求された署名アルゴリズムを用い,
   鍵タイプのデフォルトを用いないようにする. RSA/SHA2 鍵に対する
   ホストベース認証の修正の一部.

 * ssh(1): stricter UpdateHostkey signature verification logic on
   the client- side. Require RSA/SHA2 signatures for RSA hostkeys
   except when RSA/SHA1 was explicitly negotiated during initial
   KEX; bz3375

   ssh(1): クライアント側での UpdateHostkey 署名検証の論理を
   より厳密にする. RSA/SHA1 が最初の鍵交換で明示的に交渉された場合
   を除き, RSA ホスト鍵には RSA/SHA2 署名を必要とする. bz3375

 * ssh(1), sshd(8): fix signature algorithm selection logic for
   UpdateHostkeys on the server side. The previous code tried to
   prefer RSA/SHA2 for hostkey proofs of RSA keys, but missed some
   cases. This will use RSA/SHA2 signatures for RSA keys if the
   client proposed these algorithms in initial KEX. bz3375

   ssh(1), sshd(8): サーバ側での UpdateHostkeys の署名アルゴリズム
   選択の論理を修正する. 以前のコードは RSA 鍵のホスト鍵の証明に
   RSA/SHA2 を優先しようとしていたが, いくつかの場合に失敗していた.
   最初の鍵交換でクライアントがこれらのアルゴリズムを提案をしたら,
   RSA 鍵に対して RSA/SHA2 署名を利用するようになる. bz3375

 * All: convert all uses of select(2)/pselect(2) to poll(2)/ppoll(2).
   This includes the mainloops in ssh(1), ssh-agent(1), ssh-agent(1)
   and sftp-server(8), as well as the sshd(8) listen loop and all
   other FD read/writability checks. On platforms with missing or
   broken poll(2)/ppoll(2) syscalls as select(2)-based compat shim is
   available.

   すべて: select(2)/pselect(2) のすべての利用を poll(2)/ppoll(2) に
   変換する. これは, ssh(1) と ssh-agent(1), sftp-server(8) の
   メインループと sshd(8) の listen ループや他のファイルデスクリプタ
   読み込み/書き込み可能チェックを含む. poll(2) や ppoll(2) システムコールが
   なかったり壊れているプラットフォームでは, select(2) ベースの互換コードが
   利用できる.

 * ssh-keygen(1): the "-Y find-principals" command was verifying key
   validity when using ca certs but not with simple key lifetimes
   within the allowed signers file.

   ssh-keygen(1): "-Y find-principals" コマンドは ca 証明書を用いているが
   許可された署名者のファイル中に単純な鍵の寿命がない場合に
   鍵の正当性を検証していた.

 * ssh-keygen(1): make sshsig verify-time argument parsing optional

   ssh-keygen(1): sshsig verify-time 引数のパースをオプションにする

 * ssh(1), ssh-agent(1): avoid xmalloc(0) for PKCS#11 keyid for ECDSA
   keys (we already did this for RSA keys). Avoids fatal errors for
   PKCS#11 libraries that return empty keyid, e.g. Microchip ATECC608B
   "cryptoauthlib"; bz#3364

   ssh(1), ssh-agent(1): ECDSA 鍵の PKCS#11 keyid に対して xmalloc(0)
   を避ける (すでに RSA 鍵についてはそうしている). Microchip ATECC608B
   "cryptoauthlib" のような空の keyid を返す PKCS#11 ライブラリによる
   致命的エラーを避ける; bz#3364

 * ssh(1), ssh-agent(1): improve the testing of credentials against
    inserted FIDO: ask the token whether a particular key belongs to
    it in cases where the token supports on-token user-verification
    (e.g. biometrics) rather than just assuming that it will accept it.

    Will reduce spurious "Confirm user presence" notifications for key
    handles that relate to FIDO keys that are not currently inserted in at
    least some cases. bz3366

   ssh(1), ssh-agent(1): 挿入された FIDO に対する認証情報のテストを改善する:
   トークンがトークン上でのユーザ検証をサポートしている場合 (例えば 生体認証)
   トークンが鍵を受けつけるか推定するだけではなく,
   特定の鍵がトークン内にあるかをトークンに尋ねる.

   少なくともいくつかの場合で, 現在挿入されていない FIDO 鍵に関連する
   鍵の扱いでの偽の "ユーザの存在確認" 通知を減らす.

 * ssh(1), sshd(8): correct value for IPTOS_DSCP_LE. It needs to
   allow for the preceding two ECN bits. bz#3373

   ssh(1), sshd(8): IPTOS_DSCP_LE の値を修正する. 先行する 2 つの
   ECN ビットを許容する必要がある. bz#3373

 * ssh-keygen(1): add missing -O option to usage() for the "-Y sign"
   option.

   ssh-keygen(1): "-Y sign" オプションの usage() に -O オプションが
   なかったので追加する.

 * ssh-keygen(1): fix a NULL deref when using the find-principals
   function, when matching an allowed_signers line that contains a
   namespace restriction, but no restriction specified on the
   command-line

   ssh-keygen(1): find-principals 機能を用いる場合と名前空間制限を含む
   allowed_signers 行に一致するがコマンドラインで制限が指定されていない場合の
   NULL 逆参照を修正する.

 * ssh-agent(1): fix memleak in process_extension(); oss-fuzz
   issue #42719

   ssh-agent(1): process_extension() でのメモリリークを修正する.
   oss-fuzz の issue #42719

 * ssh(1): suppress "Connection to xxx closed" messages when LogLevel
   is set to "error" or above. bz3378

   ssh(1): LogLevel が "error" 以上に設定されている場合に
   "Connection to xxx closed" メッセージを抑制する.

 * ssh(1), sshd(8): use correct zlib flags when inflate(3)-ing
   compressed packet data. bz3372

   ssh(1), sshd(8): 圧縮されたパケットデータを inflate(3) する場合に
   正しい zlib のフラグを利用する. bz3372

 * scp(1): when recursively transferring files in SFTP mode, create the
   destination directory if it doesn't already exist to match scp(1) in
   legacy RCP mode behaviour.

   scp(1): SFTP モードでファイルを再帰的に転送する場合, scp(1) の
   伝統的な RCP モードの振舞に一致するよう, 転送先のディレクトリが存在
   しなけば作成する.

 * scp(1): many improvements in error message consistency between scp(1)
   in SFTP mode vs legacy RCP mode.

   scp(1): scp(1) の SFTP モードと伝統的な RCP モードの間でエラーメッセージの
   一貫性を上げる大くの修正をする.

 * sshd(8): fix potential race in SIGTERM handling PR#289

   sshd(8): SIGTERM の扱いでの潜在的な競合状態を修正する PR#289

 * ssh(1), ssh(8): since DSA keys are deprecated, move them to the
   end of the default list of public keys so that they will be tried
   last. PR#295

   ssh(1), ssh(8): DSA 鍵が非推奨になったので, 最後に試行されるように
   公開鍵のデフォルトリストの末尾に移動する. PR#295

 * ssh-keygen(1): allow 'ssh-keygen -Y find-principals' to match
   wildcard principals in allowed_signers files

   ssh-keygen(1): 'ssh-keygen -Y find-principals' で
   allowed_signers ファイルのワイルドカード principals に一致するようにする.

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

移植性

 * ssh(1), sshd(8): don't trust closefrom(2) on Linux. glibc's
   implementation does not work in a chroot when the kernel does not
   have close_range(2). It tries to read from /proc/self/fd and when
   that fails dies with an assertion of sorts. Instead, call
   close_range(2) directly from our compat code and fall back if
   that fails.  bz#3349,

   ssh(1), sshd(8): Linux の closefrom(2) を信用しない. glibc の実装は
   あーねるガ close_range(2) を持たない場合chroot 内で動作しない.
   /proc/self/fd から読み取ろうとし, 失敗したら assertion 付きで
   失敗する. 代わりに 我々の互換コードから close_range(2) を直接呼び
   失敗したらフォールバックする.

 * OS X poll(2) is broken; use compat replacement. For character-
   special devices like /dev/null, Darwin's poll(2) returns POLLNVAL
   when polled with POLLIN. Apparently this is Apple bug 3710161 -
   not public but a websearch will find other OSS projects
   rediscovering it periodically since it was first identified in
   2005.

   OS X poll(2) は請われている; 互換コードを利用する. /dev/null
   のようなキャラクター特殊デバイスに対して POLLIN 付きで poll されると
   Darwin の poll(2) は POLLNVAL を返す. どうやら Apple のバグ
   3710161 らしい - 公開されていないが, web検索で他の OSS プロジェクト
   再発見されているのが最初に識別された 2005 年以降定期的にみつかる.

 * Correct handling of exceptfds/POLLPRI in our select(2)-based
   poll(2)/ppoll(2) compat implementation.

   我々の select(2) ベースの poll(2)/ppoll(2) 互換実装で exceptfds/POLLPRI
   の扱いを修正する.

 * Cygwin: correct checking of mbstowcs() return value.

   Cygwin: mbstowcs() の返り値のチェックを修正する.

 * Add a basic SECURITY.md that refers people to the openssh.com
   website.

   openssh.com のウェブサイトを人々に示す簡単な SECURITY.md を追加する

 * Enable additional compiler warnings and toolchain hardening flags,
   including -Wbitwise-instead-of-logical, -Wmisleading-indentation,
   -fzero-call-used-regs and -ftrivial-auto-var-init.

   -Wbitwise-instead-of-logical と -Wmisleading-indentation,
   -fzero-call-used-regs, -ftrivial-auto-var-init を含む
   追加のコンパイラの警告と toolchain を強固にするフラグを有効にする.

 * HP/UX. Use compat getline(3) on HP-UX 10.x, where the libc version
   is not reliable.

   HP/UX. libc バージョンが信頼できないので HP-UX 10.x で互換の getline(3)
   を利用する

「台東区公衆喫煙環境の整備指針 中間のまとめ」に意見を提出

31 Dec, 2021 - 3 minutes

「台東区公衆喫煙環境の整備指針 中間のまとめ」について、皆様からのご意見を募集します。 台東区ホームページに対して次の内容で意見を送りました.

>   2 目的
>   本指針において、公衆喫煙環境に関する課題と対策を整理し、区の取り組みの
>   方向性とその内容を明らかにすることで、歩きたばこやポイ捨てがなく、たばこ
>   の煙や臭いに困ることのない快適な環境の整備を推進し、喫煙する人もしない
>   人も共存できる「分煙」社会の実現を目指します。

歩きたばこだけではなく, 静止しての喫煙(路上喫煙)による受動喫煙/自転車やバイク, 自動車運転中のものによる喫煙による受動喫煙/喫煙可能場所での喫煙したものの衣服などからの三次喫煙 などにも悩まされています. これらを目的に明記していただきたいです.

個人的な体験での補足です.

上野駅ペデストリアンデッキの公設喫煙所からの煙は広範囲に広がるため, 目的地まで最短距離で移動することをあきらめることがあります.

飲食店などが勝手に敷地内や歩道, 車道に配置する灰皿付近での喫煙により受動喫煙したり, 受動喫煙を避けるために道を変えることは日常となっています. 歩道車道での配置については苦情を台東区都市づくり部道路管理課に出したことがありますが, 注意をしたという店舗についても状況は変化しておりません(あいかわらず車道に灰皿を出している).

よく自転車を運転するのですが, 歩道での喫煙や運転中のものによる喫煙による受動喫煙で苦しくなることがあります. 交通安全上も問題があると考えています.

三次喫煙については, 台東区内の東京都の禁煙標識が掲示されている飲食店利用時に他の客が外で喫煙してして戻ってくることがあり, その時点で店の利用の継続を諦め退店したことがあります. また 2021/12 の 台東区ではなく新宿区での経験ですが, バス乗車中に公設喫煙所での喫煙後すぐにバスに乗車したものからの三次喫煙被害を受けました. 同様のことは台東区でも起っているのではないかと思います.
特にコンテナ/トレーラー型の公設喫煙所の利用者によっておこされる三次喫煙は心配しています. 通常の喫煙可能場所や喫煙可能店の利用者による三次喫煙についても目を向けてほしいです. 

参考: 拡がる「タバコ害」の意識〜生駒市45分ルールとモスバーガー禁煙化(石田雅彦) - 個人 - Yahoo!ニュース - https://news.yahoo.co.jp/byline/ishidamasahiko/20180330-00083333

受動喫煙には関係ありませんが, 3D 円グラフ (7ページ) の利用はやめてください. 3D でないものを含めて 円グラフの利用は一般的に好ましくありません.

参考: 3D円グラフを使うのはやめよう | Okumura's Blog - https://oku.edu.mie-u.ac.jp/~okumura/blog/node/2266

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

26 Sep, 2021 - 5 minutes

2021/09/26, OpenSSH 8.8 がリリースされました.

https://www.openssh.com/txt/release-8.8

Future deprecation notice
=========================

将来廃止される機能の告知

A near-future release of OpenSSH will switch scp(1) from using the
legacy scp/rcp protocol to using SFTP by default.

OpenSSH の近い将来のリリースで 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" プロトコル拡張で
サポートする.

Security
========

セキュリティ

sshd(8) from OpenSSH 6.2 through 8.7 failed to correctly initialise
supplemental groups when executing an AuthorizedKeysCommand or
AuthorizedPrincipalsCommand, where a AuthorizedKeysCommandUser or
AuthorizedPrincipalsCommandUser directive has been set to run the
command as a different user. Instead these commands would inherit
the groups that sshd(8) was started with.

OpenSSH 6.2 から 8.7 の sshd(8) は,
AuthorizedPrincipalsCommandUser ないし AuthorizedPrincipalsCommandUser
設定項目が異なるユーザとしてコマンドを実行するように設定されていた場合に
AuthorizedKeysCommand ないし AuthorizedPrincipalsCommand の実行時に
supplemental グループの 初期化を正しく行なえていなかった.
代わりに, これらのコマンドは sshd(8) を開始したグループを継承している.

Depending on system configuration, inherited groups may allow
AuthorizedKeysCommand/AuthorizedPrincipalsCommand helper programs to
gain unintended privilege.

システムの設定に依存して, 継承したグウープは
AuthorizedKeysCommand/AuthorizedPrincipalsCommand ヘルパープログラムが
意図しない権限を得る可能性がある.

Neither AuthorizedKeysCommand nor AuthorizedPrincipalsCommand are
enabled by default in sshd_config(5).

AuthorizedKeysCommand と AuthorizedPrincipalsCommand は sshd_config(6) の
デフォルトでは有効とされていない.

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

潜在的に非互換な変更

This release disables RSA signatures using the SHA-1 hash algorithm
by default. This change has been made as the SHA-1 hash algorithm is
cryptographically broken, and it is possible to create chosen-prefix
hash collisions for <USD$50K [1]

このリリースは SHA-1 ハッシュアルゴリズムを用いる RSA 署名を
デフォルトで無効とする. この変更は, SHA-1 ハッシュアルゴリズムが
暗号学的に壊れていて, USドル 50K より少ない金額で選択プレフィックス
ハッシュ衝突ガ USドル $50K 以下で作れることが可能 [1] なために
行なわれた.

For most users, this change should be invisible and there is
no need to replace ssh-rsa keys. OpenSSH has supported RFC8332
RSA/SHA-256/512 signatures since release 7.2 and existing ssh-rsa keys
will automatically use the stronger algorithm where possible.

多くのユーザにとって, この変更は可視化されず ssh-rsa 鍵を
置き換える必要はない. OpenSSH は RFC8332 の RSA/SHA-256/512 署名を
7.2 リリースからサポートしていて, 既存の ssh-rsa 鍵は, 利用可能であれば
このより強いアルゴリズムを自動的に用いる.

Incompatibility is more likely when connecting to older SSH
implementations that have not been upgraded or have not closely tracked
improvements in the SSH protocol. For these cases, it may be necessary
to selectively re-enable RSA/SHA1 to allow connection and/or user
authentication via the HostkeyAlgorithms and PubkeyAcceptedAlgorithms
options. For example, the following stanza in ~/.ssh/config will enable
RSA/SHA1 for host and user authentication for a single destination host:

アップグレードされなかったり SSH プロトコルの改良に十分に対応していない
より古い SSH 実装と接続する場合は, 非互換性が失なわれる可能性がより高い.
このような場合,  HostkeyAlgorithms や PubkeyAcceptedAlgorithms 設定項目を
用いて RSA/SHA1 を選択的に再有効化する必要があるかもしれない.
例えば ~/.ssh/config の次のような節で, 単一の接続先ホストに対して, ホストと
ユーザ認証に対して RSA/SHA1 を有効にする.

    Host old-host
        HostkeyAlgorithms +ssh-rsa
	PubkeyAcceptedAlgorithms +ssh-rsa

We recommend enabling RSA/SHA1 only as a stopgap measure until legacy
implementations can be upgraded or reconfigured with another key type
(such as ECDSA or Ed25519).

RSA/SHA1 の有効化は, 伝統的な実装がアップグレードされるか
(ECDSA ないし Ed25519 のような) 他の鍵の種類で再設定されるまでの
間に合せの方法のみとされることを推奨する.

[1] "SHA-1 is a Shambles: First Chosen-Prefix Collision on SHA-1 and
    Application to the PGP Web of Trust" Leurent, G and Peyrin, T
    (2020) https://eprint.iacr.org/2020/014.pdf

Changes since OpenSSH 8.7
=========================

This release is motivated primarily by the above deprecation and
security fix.

このリリースは主に前述の非推奨とセキュリティの修正によって
誘引された.

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

新機能

 * ssh(1): allow the ssh_config(5) CanonicalizePermittedCNAMEs
   directive to accept a "none" argument to specify the default
   behaviour.

   ssh(1): ssh_config(5) の CanonicalizePermittedCNAMEs 設定項目で
   デフォルトの振舞いを指定する "none" 引数を許容するようになる.

Bugfixes
--------

バグ修正

 * scp(1): when using the SFTP protocol, continue transferring files
   after a transfer error occurs, better matching original scp/rcp
   behaviour.

   scp(1): SFTP プロトコルの利用時に, 元々の scp/rcp の振舞いに
   より合わせるため, 転送エラーが起った後にファイルの転送を継続
   するようにする.

 * ssh(1): fixed a number of memory leaks in multiplexing,
   
   ssh(1): 多重化でのいくつかのメモリリークを修正した.

 * ssh-keygen(1): avoid crash when using the -Y find-principals
   command.

   ssh-keygen(1): -Y find-principals コマンドの利用時のクラッシュを
   回避する.

 * A number of documentation and manual improvements, including
   bz#3340, PR#139, PR#215, PR#241, PR#257

   bz#3340, PR#139, PR#215, PR#241, PR#257 をふくむ,
   いくつかのドキュメントとマニュアルの改善.

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

移植性

 * ssh-agent(1): on FreeBSD, use procctl to disable ptrace(2)

   ssh-agent(1): FreeBSD で, ptrace(2) を無効にするために
   procctl を用いる

 * ssh(1)/sshd(8): some fixes to the pselect(2) replacement
   compatibility code. bz#3345

   ssh(1)/sshd(8): pselect(2) の代替移植性のコードに対する
   いくつかの修正. bz#3345

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

20 Aug, 2021 - 11 minutes

2021/08/20, OpenSSH 8.7 がリリースされました.

https://www.openssh.com/txt/release-8.7

Imminent deprecation notice
===========================

差し迫った廃止の通知

OpenSSH will disable the ssh-rsa signature scheme by default in the
next release.

OpenSSH は次のリリースで ssh-rsa 署名スキームをデフォルトで無効にする.

In the SSH protocol, the "ssh-rsa" signature scheme uses the SHA-1
hash algorithm in conjunction with the RSA public key algorithm.
It is now possible[1] to perform chosen-prefix attacks against the
SHA-1 algorithm for less than USD$50K.

SSH プロトコルで, "ssh-rsa" 署名スキームは RSA 公開鍵アルゴリズムと共に
SHA-1 ハッシュアルゴリズムを利用する. 
USドル 50K より少ない金額で SHA-1 アルゴリズムに対する選択プレフィックス
攻撃が実行できることが [1] で示されている. 

Note that the deactivation of "ssh-rsa" signatures does not necessarily
require cessation of use for RSA keys. In the SSH protocol, keys may be
capable of signing using multiple algorithms. In particular, "ssh-rsa"
keys are capable of signing using "rsa-sha2-256" (RSA/SHA256),
"rsa-sha2-512" (RSA/SHA512) and "ssh-rsa" (RSA/SHA1). Only the last of
these is being turned off by default.

"ssh-rsa" 署名の無効化は RSA 鍵の利用の停止を必ずしも必要としない
ことに注意. SSH プロトコルでは, 鍵は複数のアルゴリズムを用いて署名に利用
できる. 特に "ssh-rsa" 鍵は, "rsa-sha2-256" (RSA/SHA256) と
"rsa-sha2-512" (RSA/SHA512),  "ssh-rsa" (RSA/SHA1) を用いて署名可能だ.
最後のものだけがデフォルトで無効になる予定だ.

This algorithm is unfortunately still used widely despite the
existence of better alternatives, being the only remaining public key
signature algorithm specified by the original SSH RFCs that is still
enabled by default.

このアルコリズムは, よりよい代替があるにもかかわらず
もともとの SSH RFC で定義された公開鍵署名アルゴリズムのの中で
ただ 1 つ残ったアルゴリズムとして,
不幸なことにいまだ広く用いられている.

The better alternatives include:

次に示すものがよりよい代替だ:

 * The RFC8332 RSA SHA-2 signature algorithms rsa-sha2-256/512. These
   algorithms have the advantage of using the same key type as
   "ssh-rsa" but use the safe SHA-2 hash algorithms. These have been
   supported since OpenSSH 7.2 and are already used by default if the
   client and server support them.

   RFC8332 の RSA SHA-2 署名アルゴリズム rsa-sha-256/512.
   これらのアルゴリズムは "ssh-rsa" と同じ鍵タイプを用いる利点があり
   安全な SHA-2 ハッシュアルゴリズムを用いている. これらは
   OpenSSH 7.2 以降でサポートされており, クライアントとサーバが
   サポートしているならすでにデフォルトで用いられている.

 * The RFC8709 ssh-ed25519 signature algorithm. It has been supported
   in OpenSSH since release 6.5.

   RFC8709 の ssh-ed25519 署名アルゴリズム.
   OpenSSH 6.5 以降でサポートされている.

 * The RFC5656 ECDSA algorithms: ecdsa-sha2-nistp256/384/521. These
   have been supported by OpenSSH since release 5.7.

   RFC5656 の ECDSA アルゴリズム: ecdsa-sha2-nistp256/384/521. These
   これらは OpenSSH 5.7 以降でサポートされている.

To check whether a server is using the weak ssh-rsa public key
algorithm, for host authentication, try to connect to it after
removing the ssh-rsa algorithm from ssh(1)'s allowed list:

サーバがホストの認証のために, 弱い ssh-rsa 公開鍵アルゴリズムを
利用しているか検査するには, ssh(1) の許可リストから ssh-rsa
アルゴリズムを除いたあとで接続を試行すればよい.

    ssh -oHostKeyAlgorithms=-ssh-rsa user@host

If the host key verification fails and no other supported host key
types are available, the server software on that host should be
upgraded.

ホスト鍵検証が失敗し他にサポートされたホスト鍵の種類がない場合,
ホストのサーバソフトウェアをアップグレードする必要がある.

OpenSSH recently enabled the UpdateHostKeys option by default to
assist the client by automatically migrating to better algorithms.

OpenSSH では, クライアントがよりよいアルゴリズムに自動的に移行できるよう
助ける UpdateHostKeys 設定項目が最近デフォルトで有効となった.

[1] "SHA-1 is a Shambles: First Chosen-Prefix Collision on SHA-1 and
    Application to the PGP Web of Trust" Leurent, G and Peyrin, T
    (2020) https://eprint.iacr.org/2020/014.pdf

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

潜在的に非互換な変更

This release includes a number of changes that may affect existing
configurations:

このリリースは, 既存の設定に影響する可能性のある変更をいくつか含んでいる.

 * scp(1): this release changes the behaviour of remote to remote
   copies (e.g. "scp host-a:/path host-b:") to transfer through the
   local host by default. This was previously available via the -3
   flag. This mode avoids the need to expose credentials on the
   origin hop, avoids triplicate interpretation of filenames by the
   shell (by the local system, the copy origin and the destination)
   and, in conjunction with the SFTP support for scp(1) mentioned
   below, allows use of all authentication methods to the remote
   hosts (previously, only non-interactive methods could be used).
   A -R flag has been added to select the old behaviour.

   scp(1): このリリースはリモート-リモートのコピー (たとえば
   "scp host-a:/path host-b:") の振舞いを変更し, デフォルトでローカル
   ホストを経由して転送するようになる. これは以前から -3 フラグにより
   利用可能だ. このモードは転送元の認証情報を開示する必要を避け,
   シェルによるファイル名の (ローカルなシステム, コピー元, コピー先による)
   3重の解釈を避け, 後述する scp(1) に対する SFTP のサポートと併せて
   リモートホストへのすべての認証法の利用を許す (以前はインタラクティブ
   でない方法のみが利用できた). -R フラグが古い振舞いを選択するために
   追加される.

 * ssh(1)/sshd(8): both the client and server are now using a
   stricter configuration file parser. The new parser uses more
   shell-like rules for quotes, space and escape characters. It is
   also more strict in rejecting configurations that include options
   lacking arguments. Previously some options (e.g. DenyUsers) could
   appear on a line with no subsequent arguments. This release will
   reject such configurations. The new parser will also reject
   configurations with unterminated quotes and multiple '='
   characters after the option name.

   ssh(1)/sshd(8): クライアント/サーバはより厳格な設定ファイル
   パーサを利用する. 新しいパーサはクオートやスペース, エスケープ文字
   に対してよりシェル的なルールを利用する. 引数のない設定項目を含む設定
   の拒否をより厳格にする. 以前はいくつかのオプション (たとえば DenyUsers)
   が後続の引数なしで行に現われることがあった. このリリースは
   そのような設定を拒否する. 新しいパーサは終端していないクオートや
   設定項目名の後の複数の '=' 文字を持つ設定も拒否する.

 * ssh(1): when using SSHFP DNS records for host key verification,
   ssh(1) will verify all matching records instead of just those
   with the specific signature type requested. This may cause host
   key verification problems if stale SSHFP records of a different
   or legacy signature type exist alongside other records for a
   particular host. bz#3322

   ssh(1): ホスト鍵の検証に SSHFP DNS レコードを用いる際, ssh(1) は
   要求された特定の署名タイプのレコードだけを検証する代わりに
   すべての一致するレコードを検証するようになる. (以前の振舞いは)
   特定のホストの他のレコードと共に, 異なるないし過去の署名タイプの新鮮でない
   SSHFP レコードが存在する場合に, ホスト鍵の検証の問題を引き起こす.
   bz#3332

 * ssh-keygen(1): when generating a FIDO key and specifying an
   explicit attestation challenge (using -Ochallenge), the challenge
   will now be hashed by the builtin security key middleware. This
   removes the (undocumented) requirement that challenges be exactly
   32 bytes in length and matches the expectations of libfido2.

   ssh-keygen(1): FIDO 鍵を生成し ( -Ochallenge を用いて ) 明示的な
   attestation チャレンジ を指定する際, チャレンジは組込みのセキュリティ
   鍵ミドルウェアによりハッシュされるようになる.  これは, チャレンジが
   正確に 32 バイト長でlibfido2 の期待の一致するという
   (文書化されていない) 要件を除く.

 * sshd(8): environment="..." directives in authorized_keys files are
   now first-match-wins and limited to 1024 discrete environment
   variable names.

   sshd(8): authorized_keys ファイルでの environment="..." の指定は,
   最初の一致が優先され, 1024 の独立した環境変数名に限定されるようになる.

Changes since OpenSSH 8.6
=========================

OpenSSH 8.6 からの変更

This release contains a mix of new features and bug-fixes.

このリリースは新機能とバグ修正が含まれる.

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

新機能

 - scp(1): experimental support for transfers using the SFTP protocol
   as a replacement for the venerable SCP/RCP protocol that it has
   traditionally used. SFTP offers more predictable filename handling
   and does not require expansion of glob(3) patterns via the shell
   on the remote side.

   scp(1): 伝統的に利用されている尊い SCP/RCP プロトコルの代替として
   SFTP プロトコルを利用する転送を実験的にサポートする. SFTP は
   より意外性のないファイル名の扱いを提供し, リモート側のシェルによる
   glob(3) の展開を必要としない.

   SFTP support may be enabled via a temporary scp -s flag. It is
   intended for SFTP to become the default transfer mode in the
   near future, at which time the -s flag will be removed. The -O
   flag exists to force use of the original SCP/RCP protocol for
   cases where SFTP may be unavailable or incompatible.

   SFTP サポートは scp の 一時的な -s フラグによって有効化される.
   近い将来 SFTP をデフォルトの転送モードにするつもりで, その時
   -s フラグは除去されるだろう. SFTP が利用できなかったり互換性がない
   場合に元の SCP/RCP プロトコルを強制的に利用するために -O フラグが
   存在する(追加される).

 - sftp-server(8): add a protocol extension to support expansion of
   ~/ and ~user/ prefixed paths. This was added to support these
   paths when used by scp(1) while in SFTP mode.

   sftp-server(8): ~/ と ~user/ で始まるパスの展開をサポートする
   プロトコル拡張を追加する. SFTP モードの scp(1) によって利用される際に
   これらのパスのサポートが追加される.

 - ssh(1): add a ForkAfterAuthentication ssh_config(5) counterpart to
   the ssh(1) -f flag. GHPR#231

   ssh(1): ssh(1) の -f フラグの対照として ForkAfterAuthentication
   ssh_config(5) を追加する. GHPR#231

 - ssh(1): add a StdinNull directive to ssh_config(5) that allows the
   config file to do the same thing as -n does on the ssh(1) command-
   line. GHPR#231

   ssh(1): ssh(1) コマンドラインでの -n が行なうのと同様のことを
   設定ファイルで設定できる StdinNull 設定項目を ssh_config(5) に追加する.
   GHPR#231

 - ssh(1): add a SessionType directive to ssh_config, allowing the
    configuration file to offer equivalent control to the -N (no
    session) and -s (subsystem) command-line flags. GHPR#231

   ssh(1): ssh_config に SessionType 設定項目を追加する.
   コマンドラインフラグでの -N (no sessoin) と -s (subsystem)
   と同等の制御を設定ファイルで提供する. GHPR#231

 - ssh-keygen(1): allowed signers files used by ssh-keygen(1)
   signatures now support listing key validity intervals alongside
   they key, and ssh-keygen(1) can optionally check during signature
   verification whether a specified time falls inside this interval.
   This feature is intended for use by git to support signing and
   verifying objects using ssh keys.

   ssh-keygen(1): ssh-keygen(1) の署名で利用される許可された署名者のファイルが
   鍵の正当性の期間を鍵と共に列挙できるようになり, ssh-keygen(1)は, 署名検証中に
   指定した時間がこの期間内にあるかどうかチェックできるようになる.
   で指定できるようになる.  この機能は, git が ssh 鍵を用いたオブジェクトの署名と
   検証をサポートするために利用されることを意図している.

 - ssh-keygen(8): support printing of the full public key in a sshsig
   signature via a -Oprint-pubkey flag.

   ssh-keygen(8): -Oprint-pubkey フラグにより sshsig 署名中の完全な
   公開鍵の表示をサポートする.

Bugfixes
--------

バグ修正

 * ssh(1)/sshd(8): start time-based re-keying exactly on schedule in
   the client and server mainloops. Previously the re-key timeout
   could expire but re-keying would not start until a packet was sent
   or received, causing a spin in select() if the connection was
   quiescent.

   ssh(1)/sshd(8): クライアントとサーバのメインループ中でスケジュール通りに
   時間ベースの鍵の再生成を始める. 以前は鍵の再生成のタイムアウトが
   期限切れになってもパケットが送信されるか受信されるまで鍵の再生成が
   始まらなかった. 接続が活動していない場合に select() 内で spin が
   生じていた.

 * ssh-keygen(1): avoid Y2038 problem in printing certificate
   validity lifetimes. Dates past 2^31-1 seconds since epoch were
   displayed incorrectly on some platforms. bz#3329

   ssh-keygen(1): 証明書の有効期限の表示での Y2038 問題を回避する.
   epoch から 2^31-1 秒経過した日付がいくつかのプラットフォームで
   正確に表示されていなかった. bz#3329

 * scp(1): allow spaces to appear in usernames for local to remote
   and scp -3 remote to remote copies. bz#1164

   scp(1): ローカルからリモートへの転送と scp -3 でのリモート-リモート
   コピーで, ユーザ名に空白が入っていてもよくなる. bz#1164

 * ssh(1)/sshd(8): remove references to ChallengeResponseAuthentication
   in favour of KbdInteractiveAuthentication. The former is what was in
   SSHv1, the latter is what is in SSHv2 (RFC4256) and they were
   treated as somewhat but not entirely equivalent. We retain the old
   name as a deprecated alias so configuration files continue to work
   as well as a reference in the man page for people looking for it.
   bz#3303

   ssh(1)/sshd(8): ChallengeResponseAuthentication への参照を削除し
   KbdInteractiveAuthentication を採用する. 前者は SSHv1 のもので,
   後者は SSHv2 (RFC4256) のもので, これらは 同じように扱われるが
   完全に同等のものではない. 我々は古い名前も非推奨の別名として維持し
   設定ファイルは動作する. また, この名前を探している人のために
   マニュアルに参照は残す. bz#3303

 * ssh(1)/ssh-add(1)/ssh-keygen(1): fix decoding of X.509 subject name
   when extracting a key from a PKCS#11 certificate. bz#3327

   ssh(1)//ssh-add(1)/ssh-keygen(1): PKCS#11 証明書から鍵を
   抜き出す際の X.509 subject name のデコードを修正する.

 * ssh(1): restore blocking status on stdio fds before close. ssh(1)
   needs file descriptors in non-blocking mode to operate but it was
   not restoring the original state on exit. This could cause
   problems with fds shared with other programs via the shell,
   bz#3280 and GHPR#246

   ssh(1): stdio のファイルデスクリプタの blocking 状態を
   閉じる前に回復する. ssh(1) は 操作のためにファイルデスクリプタ
   を non-blocking モードにする必要があるが, 終了時に元の状態に戻して
   いなかった. これは シェルを経由して他のプログラムと共有される
   ファイルデスクリプタで問題を起こしうる. bz#3280 と GHPR#246

 * ssh(1)/sshd(8): switch both client and server mainloops from
   select(3) to pselect(3). Avoids race conditions where a signal
   may arrive immediately before select(3) and not be processed until
   an event fires. bz#2158

   ssh(1)/sshd(8): クライアントとサーバのメインループで select(3) から
   pselect(3) に切り替える.  select(3) の直前にシグナルが来ても
   イベントが発火するまで処理されない競合状態を回避する. bz#2158

 * ssh(1): sessions started with ControlPersist were incorrectly
   executing a shell when the -N (no shell) option was specified.
   bz#3290

   ssh(1): ControlPersist 付きで始まるセッションが, -N (no shell) オプションを
   指定されていてもシェルを不正に実行していた. bz#3290

 * ssh(1): check if IPQoS or TunnelDevice are already set before
   overriding. Prevents values in config files from overriding values
   supplied on the command line. bz#3319

   ssh(1): IPQoS と TunnelDevice がすでに設定されているか上書きする前に
   確認する. 設定ファイルの値が コマンドラインで指定された値を上書きするのを
   防ぐ. bz#3319

 * ssh(1): fix debug message when finding a private key to match a
   certificate being attempted for user authentication. Previously it
   would print the certificate's path, whereas it was supposed to be
   showing the private key's path. GHPR#247

   ssh(1): ユーザ認証が試行される証明書に一致する秘密鍵の検索での
   debug メッセージを修正する. 以前は, 証明書のパスを表示するはずが
   秘密鍵のパスを表示していた. GHPR#247

 * sshd(8): match host certificates against host public keys, not
   private keys. Allows use of certificates with private keys held in
   a ssh-agent.  bz#3524

   sshd(8): ホスト秘密鍵ではなくホスト公開鍵に対してホスト証明書を一致させる.
   ssh-agent 中に保持される秘密鍵付きの証明書の利用を可能にする.
   bz#3524

 * ssh(1): add a workaround for a bug in OpenSSH 7.4 sshd(8), which
   allows RSA/SHA2 signatures for public key authentication but fails
   to advertise this correctly via SSH2_MSG_EXT_INFO. This causes
   clients of these server to incorrectly match
   PubkeyAcceptedAlgorithmse and potentially refuse to offer valid
   keys. bz#3213

   ssh(1): OpenSSH 7.4 sshd(8) のバグに対する回避策を追加する.
   OpenSSH 7.4 sshd(8) は RSA/SHA2 署名を公開鍵認証で許可するが, 
   SSH2_MSG_EXT_INFO でこれを正しく広告するのに失敗する.
   これらのサーバのクライアントに対し PubkeyAcceptedAlgorithms を不正に
   一致させ, 潜在的に正当な鍵の提供を拒否する事態を起こす. bz#3213

 * sftp(1)/scp(1): degrade gracefully if a sftp-server offers the
   limits@openssh.com extension but fails when the client tries to
   invoke it. bz#3318

   sftp(1)/scp(1): sftp-server が limits@openssh.com 拡張を提供するが
   クライアントがその起動に失敗した場合に慈悲深く拡張を無効にする.
   bz#3318

 * ssh(1): allow ssh_config SetEnv to override $TERM, which is
   otherwise handled specially by the protocol. Useful in ~/.ssh/config
   to set TERM to something generic (e.g. "xterm" instead of
   "xterm-256color") for destinations that lack terminfo entries.

   ssh(1): ssh_config の SetEnv が $TERM の上書きを可能にする.
   これはプロトコルでは特別に処理される. terminfo エントリが欠けている
   接続先に対して TERM をなにか一般的なもの (例えば "xterm-256color"
   の代わりに "xterm") に ~/.ssh/config で設定するのに便利だ.

 * sftp-server(8): the limits@openssh.com extension was incorrectly
   marked as an operation that writes to the filesystem, which made it
   unavailable in sftp-server read-only mode. bz#3318

   sftp-server(8): limits@openssh.com 拡張がファイルシステムへの書き込みをする
   操作で不正にマークされていて, sftp-server を読み取り専用モードで
   利用できなくなっていた. bz#3318

 * ssh(1): fix SEGV in UpdateHostkeys debug() message, triggered when
   the update removed more host keys than remain present.

   ssh(1): UpdateHostkeys debug() メッセージでの SEGV を修正する.
   現在保持しているホスト鍵以上のホスト鍵を削除する更新によって引き起こされる.

 * many manual page fixes.

   多くのマニュアルページを修正する.

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

移植性

 * ssh(1): move closefrom() to before first malloc. When built against
   tcmalloc, the closefrom() would stomp on file descriptors created
   for tcmalloc's internal use. bz#3321

   ssh(1): 最初の malloc の前に closefrom() を移す. tcmalloc に対して
   ビルドされた場合, tcmalloc の内部利用のために用いられる ファイル
   デスクイプタを closefrom は 利用してしまう. bz#3321

 * sshd(8): handle GIDs > 2^31 in getgrouplist. When compiled in 32bit
   mode, the getgrouplist implementation may fail for GIDs greater than
   LONG_MAX.

   sshd(8): getgrouplist で 2^31 を越える GID を処理する. 32 ビットモード
   でコンパイルされると getgrouplist の実装は LONG_MAX を越える
   GID で失敗する.

 * ssh(1): xstrdup environment variable used by ForwardAgent. bz#3328

   ssh(1): ForwardAgent で利用される環境変数を xstrdup する bz#3328

 * sshd(8): don't sigdie() in signal handler in privsep child process;
   this can end up causing sandbox violations per bz3286

   sshd(9): 特権分離された子プロセル内のシグナルハンドラで sigdie() しない;
   これは bz3286 によるとサンドボックの破壊を引き起す可能性がある.

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

13 Aug, 2021 - 9 minutes

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

Call for testing: OpenSSH 8.7

scp(1) で SFTP プロトコルが利用できるようになるようです(まだデフォルトにはなりません)

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

潜在的に非互換な変更

This release includes a number of changes that may affect existing
configurations:

このリリースは, 既存の設定に影響する可能性のある変更をいくつか含んでいる.

 * scp(1): this release changes the behaviour of remote to remote
   copies (e.g. "scp host-a:/path host-b:") to transfer through the
   local host by default. This was previously available via the -3
   flag. This mode avoids the need to expose credentials on the
   origin hop, avoids triplicate interpretation of filenames by the
   shell (by the local system, the copy origin and the destination)
   and, in conjunction with the SFTP support for scp(1) mentioned
   below, allows use of all authentication methods to the remote
   hosts (previously, only non-interactive methods could be used).
   A -R flag has been added to select the old behaviour.

   scp(1): このリリースはリモート-リモートのコピー (たとえば
   "scp host-a:/path host-b:") の振舞いを変更し, デフォルトでローカル
   ホストを経由して転送するようになる. これは以前から -3 フラグにより
   利用可能だ. このモードは転送元の認証情報を開示する必要を避け,
   シェルによるファイル名の (ローカルなシステム, コピー元, コピー先による)
   3重の解釈を避け, 後述する scp(1) に対する SFTP のサポートと併せて
   リモートホストへのすべての認証法の利用を許す (以前はインタラクティブ
   でない方法のみが利用できた). -R フラグが古い振舞いを選択するために
   追加される.

 * ssh(1)/sshd(8): both the client and server are now using a more
   strict configuration file parser. The new parser uses more
   shell-like rules for quotes, space and escape characters. It is
   also more strict in rejecting configurations that include options
   lacking arguments. Previously some options (e.g. DenyUsers) to
   appear on a line with no subsequent arguments. This release will
   reject such configurations. The new parser will also reject
   configurations with unterminated quotes and multiple '='
   characters after the option name.

   ssh(1)/sshd(8): クライアント/サーバはより厳格な設定ファイル
   パーサを利用する. 新しいパーサはクオートやスペース, エスケープ文字
   に対してよりシェル的なルールを利用する. 引数のない設定項目を含む設定
   の拒否をより厳格にする. 以前はいくつかのオプション (たとえば DenyUsers)
   が後続の引数なしで行に現われることがあった. このリリースは
   そのような設定を拒否する. 新しいパーサは終端していないクオートや
   設定項目名の後の複数の '=' 文字を持つ設定も拒否する.

 * ssh(1): when using SSHFP DNS records for host key verification,
   ssh(1) will verify all matching records instead of just those
   with the specific signature type requested. This may cause host
   key verification problems if stale SSHFP records of a different
   or legacy signature type exist alongside other records for a
   particular host. bz#3322

   ssh(1): ホスト鍵の検証に SSHFP DNS レコードを用いる際, ssh(1) は
   要求された特定の署名タイプのレコードだけを検証する代わりに
   すべての一致するレコードを検証するようになる. (以前の振舞いは)
   特定のホストの他のレコードと共に, 異なるないし過去の署名タイプの新鮮でない
   SSHFP レコードが存在する場合に, ホスト鍵の検証の問題を引き起こす.
   bz#3332

 * ssh-keygen(1): when generating a FIDO key and specifying an
   explicit attestation challenge (using -Ochallenge), the challenge
   will now be hashed by the builtin security key middleware. This
   removes the (undocumented) requirement that challenges be exactly
   32 bytes in length and matches the expectations of libfido2.

   ssh-keygen(1): FIDO 鍵を生成し ( -Ochallenge を用いて ) 明示的な
   attestation チャレンジ を指定する際, チャレンジは組込みのセキュリティ
   鍵ミドルウェアによりハッシュされるようになる.  これは, チャレンジが
   正確に 32 バイト長でlibfido2 の期待の一致するという
   (文書化されていない) 要件を除く.

 * sshd(8): environment="..." directives in authorized_keys files are
   now first-match-wins and limited to 1024 discrete environment
   variable names.

   sshd(8): authorized_keys ファイルでの environment="..." の指定は,
   最初の一致が優先され, 1024 の独立した環境変数名に限定されるようになる.

Changes since OpenSSH 8.6
=========================

OpenSSH 8.6 からの変更

This release contains a mix of new features and bug-fixes.

このリリースは新機能とバグ修正が含まれる.

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

新機能

 - scp(1): experimental support for transfers using the SFTP protocol
   as a replacement for the venerable SCP/RCP protocol that it has
   traditionally used. SFTP offers more predictable filename handling
   and does not require expansion of glob(3) patterns via the shell
   on the remote side.

   scp(1): 伝統的に利用されている尊い SCP/RCP プロトコルの代替として
   SFTP プロトコルを利用する転送を実験的にサポートする. SFTP は
   より意外性のないファイル名の扱いを提供し, リモート側のシェルによる
   glob(3) の展開を必要としない.

   SFTP support may be enabled via a temporary scp -s flag. It is
   intended for SFTP to become the default transfer mode in the
   near future, at which time the -s flag will be removed. The -O
   flag exists to force use of the original SCP/RCP protocol for
   cases where SFTP may be unavailable or incompatible.

   SFTP サポートは scp の 一時的な -s フラグによって有効化される.
   近い将来 SFTP をデフォルトの転送モードにするつもりで, その時
   -s フラグは除去されるだろう. SFTP が利用できなかったり互換性がない
   場合に元の SCP/RCP プロトコルを強制的に利用するために -O フラグが
   存在する(追加される).

 - sftp-server(8): add a protocol extension to support expansion of
   ~/ and ~user/ prefixed paths. This was added to support these
   paths when used by scp(1) while in SFTP mode.

   sftp-server(8): ~/ と ~user/ で始まるパスの展開をサポートする
   プロトコル拡張を追加する. SFTP モードの scp(1) によって利用される際に
   これらのパスのサポートが追加される.

 - ssh(1): add a ForkAfterAuthentication ssh_config(5) counterpart to
   the ssh(1) -f flag. GHPR#231

   ssh(1): ssh(1) の -f フラグの対照として ForkAfterAuthentication
   ssh_config(5) を追加する. GHPR#231

 - ssh(1): add a StdinNull directive to ssh_config(5) that allows the
   config file to do the same thing as -n does on the ssh(1) command-
   line. GHPR#231

   ssh(1): ssh(1) コマンドラインでの -n が行なうのと同様のことを
   設定ファイルで設定できる StdinNull 設定項目を ssh_config(5) に追加する.
   GHPR#231

 - ssh(1): add a SessionType directive to ssh_config, allowing the
    configuration file to offer equivalent control to the -N (no
    session) and -s (subsystem) command-line flags. GHPR#231

   ssh(1): ssh_config に SessionType 設定項目を追加する.
   コマンドラインフラグでの -N (no sessoin) と -s (subsystem)
   と同等の制御を設定ファイルで提供する. GHPR#231

 - ssh-keygen(1): let allowed signers files used by ssh-keygen(1)
   signatures support key lifetimes, and allow the verification mode to
   specify a signature time to check at. This is intended for use by
   git to support signing objects using ssh keys.

   ssh-keygen(1): ssh-keygen(1) の署名で利用される許可された署名者のファイルが
   鍵の寿命をサポートするようになり, チェックする署名の時間を検証モード
   で指定できるようになる.  git が ssh 鍵を用いた署名のオブジェクトの
   サポートするために利用されることを意図している.

 - ssh-keygen(8): support printing of the full public key in a sshsig
   signature via a -Oprint-pubkey flag.

   ssh-keygen(8): -Oprint-pubkey フラグにより sshsig 署名中の完全な
   公開鍵の表示をサポートする.

Bugfixes
--------

バグ修正

 * ssh(1)/sshd(8): start time-based re-keying exactly on schedule in
   the client and server mainloops. Previously the re-key timeout
   could expire but re-keying would not start until a packet was sent
   or received, causing a spin in select() if the connection was
   quiescent.

   ssh(1)/sshd(8): クライアントとサーバのメインループ中でスケジュール通りに
   時間ベースの鍵の再生成を始める. 以前は鍵の再生成のタイムアウトが
   期限切れになってもパケットが送信されるか受信されるまで鍵の再生成が
   始まらなかった. 接続が活動していない場合に select() 内で spin が
   生じていた.

 * ssh-keygen(1): avoid Y2038 problem in printing certificate
   validity lifetimes. Dates past 2^31-1 seconds since epoch were
   displayed incorrectly on some platforms. bz#3329

   ssh-keygen(1): 証明書の有効期限の表示での Y2038 問題を回避する.
   epoch から 2^31-1 秒経過した日付がいくつかのプラットフォームで
   正確に表示されていなかった. bz#3329

 * scp(1): allow spaces to appear in usernames for local to remote
   and scp -3 remote to remote copies. bz#1164

   scp(1): ローカルからリモートへの転送と scp -3 でのリモート-リモート
   コピーで, ユーザ名に空白が入っていてもよくなる.

 * ssh(1)/sshd(8): remove references to ChallengeResponseAuthentication
   in favour of KbdInteractiveAuthentication. The former is what was in
   SSHv1, the latter is what is in SSHv2 (RFC4256) and they were
   treated as somewhat but not entirely equivalent. We retain the old
   name as a deprecated alias so configuration files continue to work
   as well as a reference in the man page for people looking for it.
   bz#3303

   ssh(1)/sshd(8): ChallengeResponseAuthentication への参照を削除し
   KbdInteractiveAuthentication を採用する. 前者は SSHv1 のもので,
   後者は SSHv2 (RFC4256) のもので, これらは 同じように扱われるが
   完全に同等のものではない. 我々は古い名前も非推奨の別名として維持し
   設定ファイルは動作する. また, この名前を探している人のために
   マニュアルに参照は残す. bz#3303

 * ssh(1)/ssh-add(1)/ssh-keygen(1): fix decoding of X.509 subject name
   when extracting a key from a PKCS#11 certificate. bz#3327

   ssh(1)//ssh-add(1)/ssh-keygen(1): PKCS#11 証明書から鍵を
   抜き出す際の X.509 subject name のデコードを修正する.

 * ssh(1): restore blocking status on stdio fds before close. ssh(1)
   needs file descriptors in non-blocking mode to operate but it was
   not restoring the original state on exit. This could cause
   problems with fds shared with other programs via the shell,
   bz#3280 and GHPR#246

   ssh(1): stdio のファイルデスクリプタの blocking 状態を
   閉じる前に回復する. ssh(1) は 操作のためにファイルデスクリプタ
   を non-blocking モードにする必要があるが, 終了時に元の状態に戻して
   いなかった. これは シェルを経由して他のプログラムと共有される
   ファイルデスクリプタで問題を起こしうる. bz#3280 と GHPR#246

 * ssh(1)/sshd(8): switch both client and server mainloops from
   select(3) to pselect(3). Avoids race conditions where a signal
   may arrive immediately before select(3) and not be processed until
   an event fires. bz#2158

   ssh(1)/sshd(8): クライアントとサーバのメインループで select(3) から
   pselect(3) に切り替える.  select(3) の直前にシグナルが来ても
   イベントが発火するまで処理されない競合状態を回避する.

 * ssh(1): sessions started with ControlPersist were incorrectly
   executing a shell when the -N (no shell) option was specified.
   bz#3290

   ssh(1): ControlPersist 付きで始まるセッションが, -N (no shell) オプションを
   指定されていてもシェルを不正に実行していた. bz#3290

 * ssh(1): check if IPQoS or TunnelDevice are already set before
   overriding. Prevents values in config files from overriding values
   supplied on the command line. bz#3319

   ssh(1): IPQoS と TunnelDevice がすでに設定されているか上書きする前に
   確認する. 設定ファイルの値が コマンドラインで指定された値を上書きするのを
   防ぐ. bz#3319

 * ssh(1): fix debug message when finding a private key to match a
   certificate being attempted for user authentication. Previously it
   would print the certificate's path, whereas it was supposed to be
   showing the private key's path. GHPR#247

   ssh(1): ユーザ認証が試行される証明書に一致する秘密鍵の検索での
   debug メッセージを修正する. 以前は, 証明書のパスを表示するはずが
   秘密鍵のパスを表示していた. GHPR#247

 * sshd(8): match host certificates against host public keys, not
   private keys. Allows use of certificates with private keys held in
   a ssh-agent.  bz#3524
   
   sshd(8): ホスト秘密鍵ではなくホスト公開鍵に対してホスト証明書を一致させる.
   ssh-agent 中に保持される秘密鍵付きの証明書の利用を可能にする.
   bz#3524

 * ssh(1): add a workaround for a bug in OpenSSH 7.4 sshd(8), which
   allows RSA/SHA2 signatures for public key authentication but fails
   to advertise this correctly via SSH2_MSG_EXT_INFO. This causes
   clients of these server to incorrectly match
   PubkeyAcceptedAlgorithmse and potentially refuse to offer valid
   keys. bz#3213

   ssh(1): OpenSSH 7.4 sshd(8) のバグに対する回避策を追加する.
   OpenSSH 7.4 sshd(8) は RSA/SHA2 署名を公開鍵認証で許可するが, 
   SSH2_MSG_EXT_INFO でこれを正しく広告するのに失敗する.
   これらのサーバのクライアントに対し PubkeyAcceptedAlgorithms を不正に
   一致させ, 潜在的に正当な鍵の提供を拒否する事態を起こす.

 * sftp(1)/scp(1): degrade gracefully if a sftp-server offers the
   limits@openssh.com extension but fails when the client tries to
   invoke it. bz#3318

   sftp(1)/scp(1): sftp-server が limits@openssh.com 拡張を提供するが
   クライアントがその起動に失敗した場合に慈悲深く拡張を無効にする.
   bz#3318

 * ssh(1): allow ssh_config SetEnv to override $TERM, which is
   otherwise handled specially by the protocol. Useful in ~/.ssh/config
   to set TERM to something generic (e.g. "xterm" instead of
   "xterm-256color") for destinations that lack terminfo entries.

   ssh(1): ssh_config の SetEnv が $TERM の上書きを可能にする.
   これはプロトコルでは特別に処理される. terminfo エントリが欠けている
   接続先に対して TERM をなにか一般的なもの (例えば "xterm-256color"
   の代わりに "xterm") に ~/.ssh/config で設定するのに便利だ.

 * sftp-server(8): the limits@openssh.com extension was incorrectly
   marked as an operation that writes to the filesystem, which made it
   unavailable in sftp-server read-only mode. bz#3318

   sftp-server(8): limits@openssh.com 拡張がファイルシステムへの書き込みをする
   操作で不正にマークされていて, sftp-server を読み取り専用モードで
   利用できなくなっていた. bz#3318

 * ssh(1): fix SEGV in UpdateHostkeys debug() message, triggered when
   the update removed more host keys than remain present.

   ssh(1): UpdateHostkeys debug() メッセージでの SEGV を修正する.
   現在保持しているホスト鍵以上のホスト鍵を削除する更新によって引き起こされる.

 * many manual page fixes.

   多くのマニュアルページを修正する.

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

移植性

 * ssh(1): move closefrom() to before first malloc. When built against
   tcmalloc, the closefrom() would stomp on file descriptors created
   for tcmalloc's internal use. bz#3321

   ssh(1): 最初の malloc の前に closefrom() を移す. tcmalloc に対して
   ビルドされた場合, tcmalloc の内部利用のために用いられる ファイル
   デスクイプタを closefrom は 利用してしまう. bz#3321

 * sshd(8): handle GIDs > 2^31 in getgrouplist. When compiled in 32bit
   mode, the getgrouplist implementation may fail for GIDs greater than
   LONG_MAX.

   sshd(8): getgrouplist で 2^31 を越える GID を処理する. 32 ビットモード
   でコンパイルされると getgrouplist の実装は LONG_MAX を越える
   GID で失敗する.

 * ssh(1): xstrdup environment variable used by ForwardAgent. bz#3328

   ssh(1): ForwardAgent で利用される環境変数を xstrdup する bz#3328

 * sshd(8): don't sigdie() in signal handler in privsep child process;
   this can end up causing sandbox violations per bz3286

   sshd(8): 特権分離された子プロセル内のシグナルハンドラで sigdie() しない;
   これは bz3286 によるとサンドボックの破壊を引き起す可能性がある.

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

3 Mar, 2021 - 10 minutes

2021/03/03, OpenSSH 8.5 がリリースされました.

https://www.openssh.com/txt/release-8.5

Future deprecation notice
=========================

将来廃止される機能の告知

It is now possible[1] to perform chosen-prefix attacks against the
SHA-1 algorithm for less than USD$50K.

USドル 50K より少ない金額で SHA-1 アルゴリズムに対する選択プレフィックス
攻撃が実行できることが [1] で示されている. 

In the SSH protocol, the "ssh-rsa" signature scheme uses the SHA-1
hash algorithm in conjunction with the RSA public key algorithm.
OpenSSH will disable this signature scheme by default in the near
future.

SSH プロトコルで, "ssh-rsa" 署名スキームは, RSA 公開鍵アルゴリズムと共に
SHA-1 ハッシュアルゴリズムを利用している. OpenSSH は近い将来
デフォルトでこの署名スキームを無効にする予定だ.

Note that the deactivation of "ssh-rsa" signatures does not necessarily
require cessation of use for RSA keys. In the SSH protocol, keys may be
capable of signing using multiple algorithms. In particular, "ssh-rsa"
keys are capable of signing using "rsa-sha2-256" (RSA/SHA256),
"rsa-sha2-512" (RSA/SHA512) and "ssh-rsa" (RSA/SHA1). Only the last of
these is being turned off by default.

"ssh-rsa" 署名の無効化は RSA 鍵の利用の停止を必ずしも必要としない
ことに注意. SSH プロトコルでは, 鍵は複数のアルゴリズムを用いて署名に利用
できる. 特に "ssh-rsa" 鍵は, "rsa-sha2-256" (RSA/SHA256) と
"rsa-sha2-512" (RSA/SHA512),  "ssh-rsa" (RSA/SHA1) を用いて署名可能だ.
最後のものだけがデフォルトで無効になる予定だ.

This algorithm is unfortunately still used widely despite the
existence of better alternatives, being the only remaining public key
signature algorithm specified by the original SSH RFCs that is still
enabled by default.

このアルコリズムは, よりよい代替があるにもかかわらず
もともとの SSH RFC で定義された公開鍵署名アルゴリズムのの中で
ただ 1 つ残ったアルゴリズムとして,
不幸なことにいまだ広く用いられている.

The better alternatives include:

次に示すものがよりよい代替だ:

 * The RFC8332 RSA SHA-2 signature algorithms rsa-sha2-256/512. These
   algorithms have the advantage of using the same key type as
   "ssh-rsa" but use the safe SHA-2 hash algorithms. These have been
   supported since OpenSSH 7.2 and are already used by default if the
   client and server support them.

   RFC8332 の RSA SHA-2 署名アルゴリズム rsa-sha-256/512.
   これらのアルゴリズムは "ssh-rsa" と同じ鍵タイプを用いる利点があり
   安全な SHA-2 ハッシュアルゴリズムを用いている. これらは
   OpenSSH 7.2 以降でサポートされており, クライアントとサーバが
   サポートしているならすでにデフォルトで用いられている.

 * The RFC8709 ssh-ed25519 signature algorithm. It has been supported
   in OpenSSH since release 6.5.

   ssh-ed25519 署名アルゴリズム. OpenSSH 6.5 以降でサポートされている.

 * The RFC5656 ECDSA algorithms: ecdsa-sha2-nistp256/384/521. These
   have been supported by OpenSSH since release 5.7.

   RFC5656 の ECDSA アルゴリズム: ecdsa-sha2-nistp256/384/521. These
   これらは OpenSSH 5.7 以降でサポートされている.

To check whether a server is using the weak ssh-rsa public key
algorithm, for host authentication, try to connect to it after
removing the ssh-rsa algorithm from ssh(1)'s allowed list:

サーバが, ホストの認証のために, 弱い ssh-rsa 公開鍵アルゴリズムを
利用しているか検査するには, ssh(1) の許可リストから ssh-rsa
アルゴリズムを除いたあとで接続を試行すればよい.

    ssh -oHostKeyAlgorithms=-ssh-rsa user@host

If the host key verification fails and no other supported host key
types are available, the server software on that host should be
upgraded.

ホスト鍵検証が失敗し他にサポートされたホスト鍵の種類がない場合,
ホストのサーバソフトウェアをアップグレードする必要がある.

This release enables the UpdateHostKeys option by default to assist
the client by automatically migrating to better algorithms.

このリリースで, クライアントがよりよいアルゴリズムに
自動的に移行できるようにする UpdateHostKeys 設定項目をデフォルトで有効にする.

[1] "SHA-1 is a Shambles: First Chosen-Prefix Collision on SHA-1 and
    Application to the PGP Web of Trust" Leurent, G and Peyrin, T
    (2020) https://eprint.iacr.org/2020/014.pdf

Security
========

セキュリティ

 * ssh-agent(1): fixed a double-free memory corruption that was
   introduced in OpenSSH 8.2 . We treat all such memory faults as
   potentially exploitable. This bug could be reached by an attacker
   with access to the agent socket.

   ssh-agent(1): OpenSSH 8.2 で導入されてしまった double-free メモリ
   破壊を修正した. 我々はこのようなメモリの問題はすべて潜在的に
   悪用可能として取り扱う. このバグは, エージェントのソケット
   を通じて攻撃者が到達可能だった.

   On modern operating systems where the OS can provide information
   about the user identity connected to a socket, OpenSSH ssh-agent
   and sshd limit agent socket access only to the originating user
   and root. Additional mitigation may be afforded by the system's
   malloc(3)/free(3) implementation, if it detects double-free
   conditions.

   現代的なオペレーティングシステムでは, OS はソケットに接続するための
   ユーザ識別についての情報を提供する. OpenSSH ssh-agent と sshd は
   エージェントのソケットへのアクセスは, 元々のユーザと root のみに
   制限されている. システムの malloc(3)/free(3) の実装が
   double-free の状況を検知するならば, 
   追加の緩和策が存在する場合がある.

   The most likely scenario for exploitation is a user forwarding an
   agent either to an account shared with a malicious user or to a
   host with an attacker holding root access.

   もっともありそうな悪用のシナリオは, 
   悪意のあるユーザと共有しているアカウントや root アクセスを
   持つ攻撃者のホストにエージェントをユーザが転送する場合だ.

 * Portable sshd(8): Prevent excessively long username going to PAM.
   This is a mitigation for a buffer overflow in Solaris' PAM username
   handling (CVE-2020-14871), and is only enabled for Sun-derived PAM
   implementations.  This is not a problem in sshd itself, it only
   prevents sshd from being used as a vector to attack Solaris' PAM.
   It does not prevent the bug in PAM from being exploited via some
   other PAM application. GHPR#212


   移植版 sshd(8): 長すぎるユーザ名を PAM に送るのを防ぐ.
   これは, Solaris の PAM ユーザ名の扱いでのバッファオーバーフロー
   (CVE-2020-14871) に対する緩和策で, Sun 由来の PAM 実装に対してのみ
   有効化される. sshd 自身の問題ではなく, Solaris の PAM への攻撃
   ベクターとして sshd が使われるのを防ぐだけだ. 他の PAM アプリケーション
   によって PAM のバグが悪用されるのを防がない. GHPR#212

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

潜在的に非互換な変更

This release includes a number of changes that may affect existing
configurations:

このリリースは, 既存の設定に影響する可能性のある変更をいくつか含んでいる.

 * ssh(1), sshd(8): this release changes the first-preference signature
   algorithm from ECDSA to ED25519.

   ssh(1), sshd(8): このリリースで, 最優先の署名アルゴリズムが
   ECDSA から ED25519 に変更する.

 * ssh(1), sshd(8): set the TOS/DSCP specified in the configuration
   for interactive use prior to TCP connect. The connection phase of
   the SSH session is time-sensitive and often explicitly interactive.
   The ultimate interactive/bulk TOS/DSCP will be set after
   authentication completes.

   ssh(1), sshd(8): TCP での接続の前に対話的な利用に対して設定で
   指定された TOS/DSCP を設定する. SSH のセッションの接続フェーズは
   時間に敏感で, しばしば明示的に対話的になる. 最終的な対話的/バルクの
   TOS/DSCP は, 認証の完了後に設定せれる.

 * ssh(1), sshd(8): remove the pre-standardization cipher
   rijndael-cbc@lysator.liu.se. It is an alias for aes256-cbc before
   it was standardized in RFC4253 (2006), has been deprecated and
   disabled by default since OpenSSH 7.2 (2016) and was only briefly
   documented in ssh.1 in 2001.

   ssh(1), sshd(8): 標準化前の暗号 rijndael-cbc@lysator.liu.se
   を削除する. これは, RFC4253 (2006) で標準化される前の aes256-cbc
   のエイリアスで, OpenSSH 7.2 (2016) からデフォルトで非推奨となり
   無効化され, 2001 年の ssh.1 で簡単にだけ文書化されている.

 * ssh(1), sshd(8): update/replace the experimental post-quantum
   hybrid key exchange method based on Streamlined NTRU Prime coupled
   with X25519.

   ssh(1), sshd(8): X25519 と組合せた Streamlined NTRU Prime を基にする
   実験的な量子化後ハイブリッド鍵交換法を更新/交換する.

   The previous sntrup4591761x25519-sha512@tinyssh.org method is
   replaced with sntrup761x25519-sha512@openssh.com. Per its
   designers, the sntrup4591761 algorithm was superseded almost two
   years ago by sntrup761.

   以前の sntrup4591761x25519-sha512@tinyssh.org は
   sntrup761x25519-sha512@openssh.com. に交換される. 設計者によれば
   sntrup4591761 アルゴリズムは, sntrup761 により約 2 年前に
   置き換えられた.

   (note this both the updated method and the one that it replaced are
   disabled by default)

   (更新された方法も置き換えられた方法もデフォルトでは無効なことに注意)

 * ssh(1): disable CheckHostIP by default. It provides insignificant
   benefits while making key rotation significantly more difficult,
   especially for hosts behind IP-based load-balancers.

   ssh(1): CheckHostIP をデフォルトで無効化する.
   ささいな利益を提供するが, 特に IP ベースのロードバランサーの背後にある
   ホストに対して, 鍵のローテーションをかなり難しくする.

Changes since OpenSSH 8.4
=========================

OpenSSH 8.4 からの変更点

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

新機能

 * ssh(1): this release enables UpdateHostkeys by default subject to
   some conservative preconditions:
    - The key was matched in the UserKnownHostsFile (and not in the
      GlobalKnownHostsFile).
    - The same key does not exist under another name.
    - A certificate host key is not in use.
    - known_hosts contains no matching wildcard hostname pattern.
    - VerifyHostKeyDNS is not enabled.
    - The default UserKnownHostsFile is in use.

   ssh(1): 次の保守的な事前条件の元で, このリリースは UpdateHostkeys を
   デフォルトで有効にする.
    - UserKnownHostsFile で鍵が一致する (また, GlobalKnownHostsFile では一致しない)
    - 別の名前で同じ鍵が存在しない
    - 証明書ホスト鍵を利用中ではない
    - known_hosts に一致するワイルドカードホスト名パターンを含まない
    - VerifyHostKeyDNS が有効ではない
    - デフォルトの UserKnownHostsFile が利用中.

   We expect some of these conditions will be modified or relaxed in
   future.

   条件のうちのいくつかを将来変更されたり緩和される可能性がある.

 * ssh(1), sshd(8): add a new LogVerbose configuration directive for
   that allows forcing maximum debug logging by file/function/line
   pattern-lists.

   ssh(1), sshd(8): ファイル/関数/行 パターンリストに基づく
   最大のデバッグロギングを強制することを可能にする, 新しい
   LogVerbose 設定項目を追加する.

 * ssh(1): when prompting the user to accept a new hostkey, display
   any other host names/addresses already associated with the key.

   ssh(1): 新しいホスト鍵の受け入れをユーザに指示する際,
   その鍵にすでに紐づいている他のホスト名/アドレスを表示する.

 * ssh(1): allow UserKnownHostsFile=none to indicate that no
   known_hosts file should be used to identify host keys.

   ssh(1): ホスト鍵を識別するのに known_hosts ファイルを利用する
   必要がないことを指定する UserKnownHostsFile=none という指定を
   可能とする.

 * ssh(1): add a ssh_config KnownHostsCommand option that allows the
   client to obtain known_hosts data from a command in addition to
   the usual files.

   ssh(1): ssh_config に KnownHostsCommand 設定項目 を追加する.
   クライアントは, 通常のファイルに加えて,
   コマンドから known_hosts のデータを得られるようになる.

 * ssh(1): add a ssh_config PermitRemoteOpen option that allows the
   client to restrict the destination when RemoteForward is used
   with SOCKS.

   ssh(1): ssh_config に PermitRemoteOpen 設定項目を追加する.
   クライアントは, RemoteForward が SOCKS と共に利用された際に
   送信先を制限できるようになる.

 * ssh(1): for FIDO keys, if a signature operation fails with a
   "incorrect PIN" reason and no PIN was initially requested from the
   user, then request a PIN and retry the operation. This supports
   some biometric devices that fall back to requiring PIN when reading
   of the biometric failed, and devices that require PINs for all
   hosted credentials.

   ssh(1): FIDO の鍵に対して, "間違った PIN" の理由で署名操作が
   失敗し, ユーザから最初に PIN が要求されない場合, PIN を要求し
   操作をリトライする. これは, 生体情報の読み取りに失敗した場合に
   PIN の要求にフォールバックする生体デバイスや, すべての所有
   認証情報に対して PIN を要求するデバイスをサポートする.

 * sshd(8): implement client address-based rate-limiting via new
   sshd_config(5) PerSourceMaxStartups and PerSourceNetBlockSize
   directives that provide more fine-grained control on a per-origin
   address basis than the global MaxStartups limit.


   sshd(8): グローバルな MaxStartups の制限よりも origin 単位の
   アドレスを基にした細かな制御ができる
   新しい sshd_config(5) の PerSourceMaxStartups と
   PerSourceNetBlockSize 設定項目による クライアントのアドレス
   に基づく帯域制限を実装する.

Bugfixes
--------

バグ修正

 * ssh(1): Prefix keyboard interactive prompts with "(user@host)" to
   make it easier to determine which connection they are associated
   with in cases like scp -3, ProxyJump, etc. bz#3224

   ssh(1): scp -3 や ProxyJump のような場合にどの接続に関連づけられている
   かより容易に判断できるように "(user@host)" をキーボード
   インタラクティブなプロンプトに前置する. bz#3224

 * sshd(8): fix sshd_config SetEnv directives located inside Match
   blocks. GHPR#201

   sshd(8): Match ブロック内に配置された sshd_config SetEnv 設定項目
   を修正する. GHPR#201

 * ssh(1): when requesting a FIDO token touch on stderr, inform the
   user once the touch has been recorded.

   標準エラー出力に FIDO トークンの接触を要求する際, 接触が記録されたら
   ユーザに通知する.

 * ssh(1): prevent integer overflow when ridiculously large
   ConnectTimeout values are specified, capping the effective value
   (for most platforms) at 24 days. bz#3229

   ssh(1): バカに大きな ConnectTimeout が指定された場合の 整数
   オーバーフローを防止し, (多くのプラットフォームで) 実効値を
   24 日に制限する. bz#3229

 * ssh(1): consider the ECDSA key subtype when ordering host key
   algorithms in the client.

   ssh(1): クライアントでホスト鍵のアルゴリズムを整列する際に 
   ECDSA 鍵のサブタイプを考慮する.

 * ssh(1), sshd(8): rename the PubkeyAcceptedKeyTypes keyword to
   PubkeyAcceptedAlgorithms. The previous name incorrectly suggested
   that it control allowed key algorithms, when this option actually
   specifies the signature algorithms that are accepted. The previous
   name remains available as an alias. bz#3253

   ssh(1), sshd(8): PubkeyAcceptedKeyTypes 設定項目を PubkeyAcceptedAlgorithms
   に改名する. 以前の名前は 許可される鍵アルゴリズムを制御するかのように
   間違った示唆を与えていた. この設定項目は 受けつける署名アルゴリズムを
   実際には指定する. 以前の名前もエイリアスとして利用可能のままだ.
   bz#3253

 * ssh(1), sshd(8): similarly, rename HostbasedKeyTypes (ssh) and
   HostbasedAcceptedKeyTypes (sshd) to HostbasedAcceptedAlgorithms.

   ssh(1), sshd(8): 同様に (ssh の) HostbasedKeyTypes と (sshd の)
   HostbasedAcceptedKeyTypes も HostbasedAcceptedAlgorithms に改名する.

 * sftp-server(8): add missing lsetstat@openssh.com documentation
   and advertisement in the server's SSH2_FXP_VERSION hello packet.

   sftp-server(8): 存在していなかった lsetstat@openssh.com 文書と
   サーバの SSH2_FXP_VERSION ハローパケットでの広告を追加する.

 * ssh(1), sshd(8): more strictly enforce KEX state-machine by
   banning packet types once they are received. Fixes memleak caused
   by duplicate SSH2_MSG_KEX_DH_GEX_REQUEST (oss-fuzz #30078).

   ssh(1), sshd(8): 一度受信したパケットの種類を禁止して,
   鍵交換状態マシンをより厳格に実行する. 重複した SSH2_MSG_KEX_DH_GEX_REQUEST
   によって起こるメモリリークを修正する (oss-fuzz #30078)

 * sftp(1): allow the full range of UIDs/GIDs for chown/chgrp on 32bit
   platforms instead of being limited by LONG_MAX. bz#3206

   sftp(1): 32ビットプラットフォームでの chown/chgrp の UID/GID に
   LONG_MAX での制限の代わりに全範囲を指定できるようにする.

 * Minor man page fixes (capitalization, commas, etc.) bz#3223

   マニュアルページのちょっとした修正 (大文字, カンマなど) bz#3223

 * sftp(1): when doing an sftp recursive upload or download of a
   read-only directory, ensure that the directory is created with
   write and execute permissions in the interim so that the transfer
   can actually complete, then set the directory permission as the
   final step. bz#3222

   sftp(1): 読み取り専用のディレクトリの sftp の再帰的なアップロード
   ないしダウンロードの際に, 転送中はディレクトリが書き込みと実行権限付きで
   作成され, 転送が実際に終了してから最終段階でディレクトリの権限が
   設定されることを保証する. bz#3222

 * ssh-keygen(1): document the -Z, check the validity of its argument
   earlier and provide a better error message if it's not correct.
   bz#2879

   ssh-keygen(1): -Z オプションを文書化し, その引数の有効性を事前にチェックし,
   もし正しくなければよりよいエラーメッセージを提供する. bz#2879

 * ssh(1): ignore comments at the end of config lines in ssh_config,
   similar to what we already do for sshd_config. bz#2320

   ssh(1): sshd_config ですでに同様にしているように,
   ssh_config の設定行の末尾のコメントを無視する. bz#2320

 * sshd_config(5): mention that DisableForwarding is valid in a
   sshd_config Match block. bz3239

   sshd_config(5): sshd_config の Match ブロック内での DisableForwarding
   が有効だと言及する. bz3239

 * sftp(1): fix incorrect sorting of "ls -ltr" under some
   circumstances. bz3248.

   sftp(1): いくつかの環境での "ls -ltr" の正しくないソートを
   修正する. bz3248.

 * ssh(1), sshd(8): fix potential integer truncation of (unlikely)
   timeout values. bz#3250

   ssh(1), sshd(8): (ありそうもない) タイムアウト値の潜在的な整数切り捨て
   を修正する. bz#3250

 * ssh(1): make hostbased authentication send the signature algorithm
   in its SSH2_MSG_USERAUTH_REQUEST packets instead of the key type.
   This make HostbasedAcceptedAlgorithms do what it is supposed to -
   filter on signature algorithm and not key type.

   ssh(1): ホストベースの認証で, 鍵の種類の変りに SSH2_MSG_USERAUTH_REQUEST で
   署名のアルゴリズムを送信するようにする. HostbasedAcceptedAlgorithms が
   鍵の種類ではなく署名のアルゴリズムでフィルタリングするという
   あるべき動作をするようになる.

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

移植性

 * sshd(8): add a number of platform-specific syscalls to the Linux
   seccomp-bpf sandbox. bz#3232 bz#3260

   sshd(8): Linux seccomp-bpf サンドボックスのプラットフォーム特有の
   システムコールをいろいろと追加する. bz#3232 bz#3260

 * sshd(8): remove debug message from sigchld handler that could cause
   deadlock on some platforms. bz#3259

   sshd(8): いくつかのプラットフォームでデッドロックを引き起す可能性のあった
   sigchld ハンドラからのデバッグメッセージを除去する. bz#3259

 * Sync contrib/ssh-copy-id with upstream.

   contrib/ssh-copy-id を上流と同期する.

 * unittests: add a hostname function for systems that don't have it.
   Some systems don't have a hostname command (it's not required by
   POSIX). The do have uname -n (which is), but not all of those have
   it report the FQDN.

   単体テスト: システムが持っていない場合 hostname 関数を追加する.
   いくつかのシステムでは, hostname コマンドを持っておらず 
   (POSIZ で要求されていない), (要求されている )uname -n はあるが, 
   すべてのシステムで FQDN をレポートするわけではない.