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

2021/04/19, OpenSSH 8.6 がリリースされました.

主にバグ修正のリリースですが, 実際に利用される蓋然性が非常に少ないセキュリティの問題への対応があります.

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

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


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



 * sshd(8): OpenSSH 8.5 introduced the LogVerbose keyword. When this
   option was enabled with a set of patterns that activated logging
   in code that runs in the low-privilege sandboxed sshd process, the
   log messages were constructed in such a way that printf(3) format
   strings could effectively be specified the low-privilege code.

   sshd(8): OpenSSH 8.5 は LogVerbose キーワードを導入した. 
   低権限のサンドボックス化された sshd プロセス内で走るコード中での
   printf(3) 形式の文字列が低権限のコードを効率的に指定できるように

   An attacker who had sucessfully exploited the low-privilege
   process could use this to escape OpenSSH's sandboxing and attack
   the high-privilege process. Exploitation of this weakness is
   highly unlikely in practice as the LogVerbose option is not
   enabled by default and is typically only used for debugging. No
   vulnerabilities in the low-privilege process are currently known
   to exist.

   低権限のプロセスの権限を奪うことに成功した攻撃者は, これを利用して
   OpenSSH のサンドボックスを回避して高権限のプロセスを攻撃することができた.
   この脆弱性の悪用は, 実際上は非常にありそうもない. LogVerbose 設定項目は
   デフォルトでは有効ではなく, 典型的にはデバッグ用のみに利用される.

   Thanks to Ilja Van Sprundel for reporting this bug.

Changes since OpenSSH 8.5

OpenSSH 8.5 からの変更点

This release contains mostly bug fixes.


New features


 * sftp-server(8): add a new protocol extension
   that allows a client to discover various server limits, including
   maximum packet size and maximum read/write length.

   sftp-server(8): 新しい プロトコル拡張を追加する.

 * sftp(1): use the new extension (when available)
   to select better transfer lengths in the client.

   sftp(1): クライアントがよりよい転送長を選択するため
   新しい 拡張 (が利用可能なら) 用いる.

 * sshd(8): Add ModuliFile keyword to sshd_config to specify the
   location of the "moduli" file containing the groups for DH-GEX.

   sshd(8): sshd_config に ModuliFile キーワードを追加する.
   DH-GEX のための群を含む "moduli" ファイルの場所を指定する.

 * unit tests: Add a TEST_SSH_ELAPSED_TIMES environment variable to
   enable printing of the elapsed time in seconds of each test.

   単体テスト: それぞれのテストにかかる時間を秒単位での表示を可能にする



 * ssh_config(5), sshd_config(5): sync CASignatureAlgorithms lists in
   manual pages with the current default. GHPR#174

   ssh_config(5), sshd_config(5): マニュアルページの
   CASignatureAlgorithms のリストを現在のデフォルトと同期する. GHPR#174

 * ssh(1): ensure that pkcs11_del_provider() is called before exit.

   ssh(1): exit 前に pkcs11_del_provider() が呼ばれることを保証する..

 * ssh(1), sshd(8): fix problems in string->argv conversion. Multiple
   backslashes were not being dequoted correctly and quoted space in
   the middle of a string was being incorrectly split. GHPR#223
   ssh(1), sshd(8): 文字列->引数 変換の問題を修正する.

 * ssh(1): return non-zero exit status when killed by signal; bz#3281

   ssh(1): シグナルで殺された場合 0 でない終了ステータスを返す;

 * sftp-server(8): increase maximum SSH2_FXP_READ to match the maximum
   packet size. Also handle zero-length reads that are not explicitly
   banned by the spec.

   sftp-server(8): 最大パケットサイズに一致するよう最大の SSH2_FXP_READ 
   を増やす. また, 仕様で明示的に禁止されていない 0 長のリードを扱う.



 * sshd(8): don't mistakenly exit on transient read errors on the
   network socket (e.g. EINTR, EAGAIN); bz3297

   sshd(8): ネットワークソケットの一時的なリードエラー (例えば EINTR, EAGAIN)
   で間違って exit しない; bz3297

 * Create a dedicated contrib/gnome-ssk-askpass3.c source instead of
   building it from the same file as used for GNOME2. Use the GNOME3
   gdk_seat_grab() to manage keyboard/mouse/server grabs for better
   compatibility with Wayland.

   GNOME2 のために利用されるのと同じファイルからビルドするかわりに
   専用の contrib/gnome-ssk-askpass3.c を作成する. Wayland との
   よりよい互換性のために キーボード/マウス/サーバの grab を管理する
   GNOME3 の gdk_seat_grab() を利用する.

 * Fix portability build errors bz3293 bz3292 bz3291 bz3278

   移植性のビルドエラーを修正する. bz3293 bz3292 bz3291 bz3278

 * sshd(8): soft-disallow the fstatat64 syscall in the Linux
   seccomp-bpf sandbox. bz3276

   sshd(8): Linux の seccomp-bpf サンドボックス中で fstatat64 
   システムコールをソフトに不許可にする. bz3276

 * unit tests: enable autoopt and misc unit tests that were
   previously skipped

   単体テスト:  autoopt を有効にし, 以前スキップされていた