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

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

Call for testing: OpenSSH 8.5

Security
========

セキュリティ

 * Portable sshd(8): Prevent excessively long username going to PAM.

   移植版 sshd(8): 長すぎるユーザ名を 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

   これは, 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.

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

   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 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): 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 fine-grained control than the global MaxStartups
   limit.

   sshd(8): グローバルな MaxStartups よりも細かな制御ができる
   新しい 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 をレポートするわけではない.