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

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

Call for testing: OpenSSH 7.8

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

https://lists.mindrot.org/pipermail/openssh-unix-dev/2018-August/037046.html

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

潜在的に非互換な変更

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

このリリースは既存の設定に影響するかもしれないいくつかの変更を含む:

 * ssh-keygen(1): write OpenSSH format private keys by default
   instead of using OpenSSL's PEM format. The OpenSSH format,
   supported in OpenSSH releases since 2014 and described in the
   PROTOCOL.key file in the source distribution, offers substantially
   better protection against offline password guessing and supports
   key comments in private keys. If necessary, it is possible to write
   old PEM-style keys by adding "-m PEM" to ssh-keygen's arguments
   when generating or updating a key.

   ssh-keygen(1): デフォルトでOpenSSL の PEM 形式を使う代わりに
   OpenSSH 形式の秘密鍵を書き込む. OpenSSH 形式は,
   2014 年以降の OpenSSH のリリースでサポートされており,
   ソース配布の PROTOCOL.key ファイルで記述されている.
   この形式は, オフラインのパスワード推測に対して実質的に
   よりよい保護を提供し, 秘密鍵の中の鍵コメントをサポートしている.
   必要があれば,  鍵を生成したり更新する際に ssh-keygen の引数に
   "-m PEM" と加えることで古い PEM 形式の鍵を書き込むことが可能だ.

 * sshd(8): remove internal support for S/Key multiple factor
   authentication. S/Key may still be used via PAM or BSD auth.

   sshd(8): S/Key 多要素認証の内部サポートを除く. S/Key は
   PAM か BSD認証経由でまだ利用できるだろう.

 * ssh(1): remove vestigal support for running ssh(1) as setuid. This
   used to be required for hostbased authentication and the (long
   gone) rhosts-style authentication, but has not been necessary for
   a long time. Attempting to execute ssh as a setuid binary, or with
   uid != effective uid will now yield a fatal error at runtime.

   ssh(1): ssh(1) を setuid で走らせる痕跡のないサポートを除く.
   これは, ホストベース認証や (太古の) rhost 認証で必要とされていた
   ものだが, 長い間必要がなくなっている. ssh を setuid バイナリとして
   実行しようとしたり, uid と実効 uid が異なる状態で実効しようとすると
   今後実行時に致命的エラーを生成するようになる

 * sshd(8): the semantics of PubkeyAcceptedKeyTypes and the similar
   HostbasedAcceptedKeyTypes options have changed. These now specify
   signature algorithms that are accepted for their respective
   authentication mechanism, where previously they specified accepted
   key types. This distinction matters when using the RSA/SHA2
   signature algorithms "rsa-sha2-256", "rsa-sha2-512" and their
   certificate counterparts. Configurations that override these
   options but omit these algorithm names may cause unexpected
   authentication failures (no action is required for configurations
   that accept the default for these options).

   sshd(8): PubkeyAcceptedKeyTypes と類似の HostbasedAcceptedKeyTypes
   設定項目の形式を変更する. これらは, 今後それらそれぞれの
   認証メカニズムで受けいれる署名アルゴリズムを指定できる.
   以前は受け入れる鍵のタイプを指定していた. RSA/SHA2 の署名アルゴリズム
   "rsa-sha2-256" と "rsa-sha2-512" と それらの証明書を用いる場合に
   この区別が意味を持つ.
   これらの設定項目を上書きするがこれらのアルゴリズム名を除いた
   設定は, 予期しない認証の失敗を引き起すかもしれない.
   (これらのの設定項目についてデフォルトのままの設定であればなにも
   対応の必要はない).

 * sshd(8): the precedence of session environment variables has
   changed. ~/.ssh/environment and environment="..." options in
   authorized_keys files can no longer override SSH_* variables set
   implicitly by sshd.

   sshd(8): セッション変数の設定の優先順位を変更する. ~/.ssh/environment
   と authorized_keys 中の environment="..." オプションは,
   ssdh で暗黙的に設定される SSH_* 変数をもはや上書きできない.

 * ssh(1)/sshd(8): the default IPQoS used by ssh/sshd has changed.
   They will now use DSCP AF21 for interactive traffic and CS1 for
   bulk.  For a detailed rationale, please see the commit message:
   https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/readconf.c#rev1.284

   ssh(1)/sshd(8): ssh/sshd で用いられるデフォルトの IPQoS を変更する.
   今後 インタラクティブなトラフィックでは DSCP AF21 を用い,
   バルクなトラフィックでは CS1 を用いる. 詳細な根拠は,
   次のコミットメッセージを参照:
   https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/readconf.c#rev1.284

Changes since OpenSSH 7.7
=========================

OpenSSH 7.7 からの変更点

This is primarily a bugfix release.

これは基本的にバグ修正のリリースだ.

New Features
------------

新機能

 * ssh(1)/sshd(8): add new signature algorithms "rsa-sha2-256-cert-
   v01@openssh.com" and "rsa-sha2-512-cert-v01@openssh.com" to
   explicitly force use of RSA/SHA2 signatures in authentication.

   ssh(1)/sshd(8): 新しい署名アルゴリズム
   "rsa-sha2-256-cert-v01@openssh.com" と
   "rsa-sha2-512-cert-v01@openssh.com" を追加する.
   これらは 認証での RSA/SHA2 署名を明示的に強制する.

 * sshd(8): extend the PermitUserEnvironment option to accept a
   whitelist of environment variable names in addition to global
   "yes" or "no" settings.

   sshd(8): PermitUserEnvironment 設定項目を拡張し,
   全体の "yes" か "no" の設定に加えて, 環境変数名のホワイトリスト
   を受け入れる.

 * sshd(8): add a PermitListen directive to sshd_config(5) and a
   corresponding permitlisten= authorized_keys option that control
   which listen addresses and port numbers may be used by remote
   forwarding (ssh -R ...).

   sshd(8): sshd_config(5) に PermitListen 設定項目を追加し,
   対応する permitlisten= authorized_keys オプションを追加する.
   これらは, リモート転送 (ssh -R ...) で用いられる
   アドレスとポート番号を制御する.

 * sshd(8): add some countermeasures against timing attacks used for
   account validation/enumeration. sshd will enforce a minimum time
   or each failed authentication attempt consisting of a global 5ms
   minimum plus an additional per-user 0-4ms delay derived from a
   host secret.

   sshd(8): アカウント検証/列挙に用いられるタイミング攻撃に対する
   いくつかの対抗策を追加する. sshd は 
   全体的な 5ms と
   ホストの秘密(鍵?)から導出されるユーザごとの 追加の 0-4ms の
   によって構成される時間をすべての失敗した認証試行に強制する.

 * sshd(8): add a SetEnv directive to allow an administrator to
   explicitly specify environment variables in sshd_config.
   Variables set by SetEnv override the default and client-specified
   environment.

   sshd(8): SetEnv 設定項目で sshd_config 内の環境変数を
   管理者が明示的に指定できるようにする. SetEnv で設定された
   変数は, デフォルトやクライアントに指定された環境を上書きする.

 * ssh(1): add a SetEnv directive to request that the server sets
   an environment variable in the session. Similar to the existing
   SendEnv option, these variables are set subject to server
   configuration.

   ssh(1): SetEnv 設定項目に セッション中にサーバが環境変数を設定する要求を
   追加する. 既存の SendEnv 設定項目と同様に, これらの変数はサーバの
   設定に従って設定される.

 * ssh(1): allow "SendEnv -PATTERN" to clear environment variables
   previously marked for sending to the server. bz#1285

   ssh(1): サーバに送られたと以前マークされた環境変数を
   クリアする "SendEnv -PATTERN" を許可する.

 * ssh(1)/sshd(8): make UID available as a %-expansion everywhere
   that the username is available currently. bz#2870

   ssh(1)/sshd(8): ユーザ名が現在利用可能などこでも %-展開として
   UID を利用可能にする. bz#2870

 * ssh(1): allow setting ProxyJump=none to disable ProxyJump
   functionality. bz#2869

   ssh(1): ProxyJump を機能的に無効にする ProxyJump=none の設定を
   許可する.

Bugfixes
--------

バグ修正

 * all: substantial internal refactoring

   全体: 相当な内部のリファクタリング

 * sshd(8): avoid observable differences in request parsing that could
   be used to determine whether a target user is valid.

   sshd(8): ターゲットのユーザが有効かどうか判定するのに利用可能だった
   リクエストのパースの観測可能な差異を除く

 * ssh(1)/sshd(8): fix some memory leaks; bz#2366

   ssh(1)/sshd(8): いくつかのメモリリークの修正; bz#2366

 * ssh(1): fix a pwent clobber (introduced in openssh-7.7) that could
   occur during key loading, manifesting as crash on some platforms.

   ssh(1): (openssh-7.7 で導入されてしまった) pwent clobber 
   (ファイルディスクリプタのcloseし忘れか?) を修正.
   この問題は 鍵のロード時に発生し, いくつかのプラットフォームでは
   クラッシュする.

 * sshd_config(5): clarify documentation for AuthenticationMethods
   option; bz#2663

   sshd_config(5): AuthenticationMethods 設定項目の記述を明確にする;
   bz#2663

 * ssh(1): ensure that the public key algorithm sent in a
   public key SSH_MSG_USERAUTH_REQUEST matches the content of the
   signature blob. Previously, these could be inconsistent when a
   legacy or non-OpenSSH ssh-agent returned a RSA/SHA1 signature
   when asked to make a RSA/SHA2 signature.

   ssh(1): 公開鍵の SSH_MSG_USERAUTH_REQUEST の中で送られる
   公開鍵アルゴリズムが, その署名ブロブの内容と一致するかを補償する.
   以前, 古いないしOpenSSHでない ssh-agent が RSA/SHA2
   署名を作るように求められた場合に RSA/SHA1 署名を返す場合に
   これらは一貫していないことがありえた.

 * sshd(8): fix failures to read authorized_keys caused by faulty
   supplemental group caching. bz#2873

   sshd(8): 欠陥のある補足的なグループキャッシングにより authorized_keys
   の読み込みの失敗を修正する. bz#2873

 * scp(1): apply umask to directories, fixing potential mkdir/chmod
   race when copying directory trees bz#2839

   scp(1): ディレクトリに umask を適用する. ディレクトリツリーを
   コピーする際の潜在的な mkdir/chmod 競合を修正する. bz#2839

 * ssh-keygen(1): return correct exit code when searching for and
   hashing known_hosts entries in a single operation; bz#2772

   ssh-keygen(1): 単一の操作で known_hosts のエントリを
   検索しハッシュする際に正しい終了コードを返却する. bz#2772

 * ssh(1): prefer the ssh binary pointed to via argv[0] to $PATH when
   re-executing ssh for ProxyJump. bz#2831

   ssh(1): ProxyJump で ssh を再実行するう際に $PATH よりも
   argv[0] が指す ssh バイナリを優先する. bz#2831

 * sshd(8): do not ban PTY allocation when a sshd session is
   restricted because the user password is expired as it breaks
   password change dialog. (regression in openssh-7.7).

   sshd(8): sshd のセッションが制限されている場合に PTY 確保を
   禁止しない. ユーザのパスワードが期限切れになっている場合に
   パスワード変更の対話がうまくいかなくなるから.
   (openssh-7.7 で退行していた)

 * ssh(1)/sshd(8): fix error reporting from select() failures.

   ssh(1)/sshd(8): select() の失敗からのエラーレポートを修正する.

 * ssh(1): improve documentation for -w (tunnel) flag, emphasising
   that -w implicitly sets Tunnel=point-to-point. bz#2365

   ssh(1): -w (tunnel) フラグの文書を改善する. -w は暗黙的に
   Tunnel=point-to-point を設定することを強調する. bz#2365

 * ssh-agent(1): implement EMFILE mitigation for ssh-agent. ssh-agent
   will no longer spin when its file descriptor limit is exceeded.
   bz#2576

   ssh-agent(1): ssh-agent に EMFILE の緩和を実装する. ssh-agent は
   そのファイルディスクリププタ制限を超過した場合に空転しない
   ようになる.

 * ssh(1)/sshd(8): disable SSH2_MSG_DEBUG messages for Twisted Conch
   clients. Twisted Conch versions that lack a version number in
   their identification strings will mishandle these messages when
   running on Python 2.x (https://twistedmatrix.com/trac/ticket/9422)

   ssh(1)/sshd(8): Twisted Conch クライアントのために SSH2_MSG_DEBUG 
   メッセージを無効にする. Twisted Conch のバージョンは, その
   認識文字列にバージョン番号が欠けているので, Python 2.x 上で走らせる
   場合に SSH2_MSG_DEBUG メッセージを間違えて扱う
   (https://twistedmatrix.com/trac/ticket/9422)

 * sftp(1): notify user immediately when underlying ssh process dies
   expectedly. bz#2719

   sftp(1): 基底の ssh プロセスが予想通り死んだ場合にユーザにすぐに
   通知する.

 * ssh(1)/sshd(8): fix tunnel forwarding; regression in 7.7 release.
   bz#2855

   ssh(1)/sshd(8): トンネル転送を修正する. 7.7 リリースで退行してた.
   bz#2855

 * ssh-agent(1): don't kill ssh-agent's listening socket entirely if
   it fails to accept(2) a connection. bz#2837

   ssh-agent(1): accept(2) で接続を失敗した場合に ssh-agent が
   listen するソケットを完全には kill しない. bz#2837

 * sshd(8): relax checking of authorized_keys environment="..."
   options to allow underscores in variable names (regression
   introduced in 7.7). bz#2851

   sshd(8): authorized_keys の environment="..." オプションのチェックを
   緩和し, 変数名に アンダースコアを許す (7.7 で導入された退行).
   bz#2851

 * ssh(1): add some missing options in the configuration dump output
   (ssh -G). bz#2835

   ssh(1): 設定ダンプ出力(ssh -G)で抜けていたいくつかの設定項目を追加する.

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

移植性

 * sshd(8): Expose details of completed authentication to PAM auth
   modules via SSH_AUTH_INFO_0 in the PAM environment. bz#2408

   sshd(8): PAM 環境の SSH_AUTH_INFO_0 によって
   完全な認証の詳細を PAM 認証モジュールに露出する.

 * Fix compilation problems caused by fights between zlib and OpenSSL
   colliding uses of "free_func"

   zlib と OpenSSL 間の "free_func" の利用の衝突の戦いによる
   コンパイルの問題を修正する.

 * Improve detection of unsupported compiler options. Recently these
   may have manifested as "unsupported -Wl,-z,retpoline" warnings
   during linking.

   サポートされていないコンパイラのオプションの検出を改善する.
   最近 サポートされていないオプションがリンク中に
   "unsupported -Wl,-z,retpoline" の警告として明らかになっている
   場合があった.

 * sshd(8): some sandbox support for Linux/s390 bz#2752.

   sshd(8): Linux/s390 に対するいくつかのサンドボックスのサポート.
   bz#2752

 * regress tests: unbreak key-options.sh test on platforms without
   openpty(3). bz#2856

   回帰テスト: openpty(3) がないプラットフォームで key-options.sh 
   テストが壊れないようにする.

 * use getrandom(2) for PRNG seeding when built without OpenSSL.
   
   OpenSSL がない環境でビルドされた場合に PRNG のシードに
   getrandom(2) を利用する.