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 によるとサンドボックの破壊を引き起す可能性がある.