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

2019/04/17, OpenSSH 8.0 がリリースされました.

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

Security
========

セキュリティ

This release contains mitigation for a weakness in the scp(1) tool
and protocol (CVE-2019-6111): when copying files from a remote system
to a local directory, scp(1) did not verify that the filenames that
the server sent matched those requested by the client. This could
allow a hostile server to create or clobber unexpected local files
with attacker-controlled content.

このリリースは, scp(1) ツールとプロトコルの問題 (CVE-2019-6111) の緩和を含んでいる:
リモートのシステムからローカルのディレクトリにファイルをコピーする際に,
scp(1) は, サーバが送信したファイル名がクライアントによって要求されたものと
一致するかどうかを検証していない. これを利用して, 悪意のあるサーバが攻撃者が
制御する内容で予期しないローカルファイルを作成したり変更する可能性がある.

This release adds client-side checking that the filenames sent from
the server match the command-line request,

このリリースでサーバから送られたファイル名がコマンドラインの要求と
一致するかどうかのクライアント側でのチェックを追加する.

The scp protocol is outdated, inflexible and not readily fixed. We
recommend the use of more modern protocols like sftp and rsync for
file transfer instead.

scp プロトコルは時代遅れで, 柔軟性がなく, 簡単に修正できない.
ファイル転送には scp の代わりに sftp や rsync にようなより
現代的なプロトコルの利用を推奨する.

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

潜在的に非互換な変更

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

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

 * scp(1): Relating to the above changes to scp(1); the scp protocol
   relies on the remote shell for wildcard expansion, so there is no
   infallible way for the client's wildcard matching to perfectly
   reflect the server's. If there is a difference between client and
   server wildcard expansion, the client may refuse files from the
   server. For this reason, we have provided a new "-T" flag to scp
   that disables these client-side checks at the risk of
   reintroducing the attack described above.

   scp(1): 前述の変更に関係: scp プロトコルはリモートシェル上の
   ワイルドカード展開に依存している. そのため, クライアントの
   ワイルドカードの一致に対してサーバのそれを反映する絶対確実な
   方法は存在しない. クライアントとサーバのワイルドカード展開が
   異なる場合, クライアントはサーバからのファイルを拒否するかもしれない.
   このため, 我々は 新しい "-T" フラグを scp に提供する.
   これは, 前述した攻撃を再導入するリスクを承知の上でこれらのクライアント側の
   チェックを無効にする.

 * sshd(8): Remove support for obsolete "host/port" syntax. Slash-
   separated host/port was added in 2001 as an alternative to
   host:port syntax for the benefit of IPv6 users. These days there
   are establised standards for this like [::1]:22 and the slash
   syntax is easily mistaken for CIDR notation, which OpenSSH
   supports for some things. Remove the slash notation from
   ListenAddress and PermitOpen; bz#2335

   sshd(8): 旧式の "host/port" 構文のサポートを除く. スラッシュ区切りの
   host/port は IPv6 ユーザのために host:port 構文の代替として 2001 年に
   追加された. [::1]:22 のような確立した標準が最近は存在し,
   スラッシュ構文は OpenSSH でもサポートしている箇所がある
   CIDR 表記と間違えやすい. ListenAddress と PermitOpen から
   スラッシュ表記を除く; bz#2335

Changes since OpenSSH 7.9
=========================

OpenSSH 7.9 からの変更

This release is focused on new features and internal refactoring.

このリリースは, 新しい機能と内部のリファクタリグに重点を置いている.

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

新機能

 * ssh(1), ssh-agent(1), ssh-add(1): Add support for ECDSA keys in
   PKCS#11 tokens.

   ssh(1), ssh-agent(1), ssh-add(1): PKCS#11 トークン中の ECDSA 鍵
   のサポートを追加する.

 * ssh(1), sshd(8): Add experimental quantum-computing resistant
   key exchange method, based on a combination of Streamlined NTRU
   Prime 4591^761 and X25519.

   ssh(1), sshd(8): 実験的な量子コンピューティング耐性鍵交換法を
   追加する. Streamlined NTRU 4591^761 と X25519 の組合せに基づく.

 * ssh-keygen(1): Increase the default RSA key size to 3072 bits,
   following NIST Special Publication 800-57's guidance for a
   128-bit equivalent symmetric security level.

   ssh-keygen(1): デフォルトの RSA 鍵のサイズを 3072 ビットに増やす.
   128 ビットの共通鍵暗号と同等のセキュリティレベルに対する
   NIST Special Publication 800-57 のガイダンスに従うため.

 * ssh(1): Allow "PKCS11Provider=none" to override later instances of
   the PKCS11Provider directive in ssh_config; bz#2974

   ssh(1): ssh_config で PKCS11Provider 設定項目の後の設定を上書きするため
   "PKCS11Provider=none" を許可する; bz#2974

 * sshd(8): Add a log message for situations where a connection is
   dropped for attempting to run a command but a sshd_config
   ForceCommand=internal-sftp restriction is in effect; bz#2960

   sshd(8): sshd_config での ForceCommand=internal-sftp 制限が有効にも
   かかわらず, コマンドを走らせようとして接続が落ちる場合のログ
   メッセージを追加する; bz#2960

 * ssh(1): When prompting whether to record a new host key, accept
   the key fingerprint as a synonym for "yes". This allows the user
   to paste a fingerprint obtained out of band at the prompt and
   have the client do the comparison for you.

   ssh(1): 新しいホスト鍵を記録するかどうかのプロンプトを出している場合に,
   鍵の指紋を "yes" の同意語として受けつける. これにより, ユーザが
   外部から得た指紋をペーストしてクライアントに比較させられる.

 * ssh-keygen(1): When signing multiple certificates on a single
   command-line invocation, allow automatically incrementing the
   certificate serial number.

   ssh-keygen(1): 単一のコマンドラインから複数の証明書に署名する場合,
   証明書のシリアル番号を自動的に増加させられるようになる.

 * scp(1), sftp(1): Accept -J option as an alias to ProxyJump on
   the scp and sftp command-lines.

   scp(1), sftp(1): scp と sftp のコマンドラインで ProxyJump の
   エイリアスとして -J オプションを受けつける.

 * ssh-agent(1), ssh-pkcs11-helper(8), ssh-add(1): Accept "-v"
   command-line flags to increase the verbosity of output; pass
   verbose flags though to subprocesses, such as ssh-pkcs11-helper
   started from ssh-agent.

   ssh-agent(1), ssh-pkcs11-helper(8), ssh-add(1): 出力の冗長性を
   増す "-v" コマンドラインオプションを受けつける. ssh-agent から
   起動される ssh-pkcs11-helper の場合のように, サブプロセスへ
   冗長オプションは渡される.

 * ssh-add(1): Add a "-T" option to allowing testing whether keys in
   an agent are usable by performing a signature and a verification.

   ssh-add(1): エージェント内で鍵が署名と検証の実行に利用できるかを
   テストすることを許す "-T" オプションを追加する.

 * sftp-server(8): Add a "lsetstat@openssh.com" protocol extension
   that replicates the functionality of the existing SSH2_FXP_SETSTAT
   operation but does not follow symlinks. bz#2067

   sftp-server(8): 既存の SSH2_FXP_SETSTAT の機能と同等だがシンボリックリンクは
   追従しない, "lsetstat@openssh.com" プロトコル拡張を追加する.

 * sftp(1): Add "-h" flag to chown/chgrp/chmod commands to request
   they do not follow symlinks.

   sftp(1): シンボリックリンクを追従しないように要求する "-h" フラグを
   chown/chgrp/chmod コマンドに追加する.

 * sshd(8): Expose $SSH_CONNECTION in the PAM environment. This makes
   the connection 4-tuple available to PAM modules that wish to use
   it in decision-making. bz#2741

   PAM 環境で $SSH_CONNECTION を露出する. これにより, 意思決定に
   $SSH_CONNECTION を利用したい PAM モジュールが 接続 4タプル
   (訳注: source ip, ocsp URL, issuer name hash, serial number) を
   利用できる. bz#2741

 * sshd(8): Add a ssh_config "Match final" predicate Matches in same
   pass as "Match canonical" but doesn't require hostname
   canonicalisation be enabled. bz#2906

   sshd(8): "Match canonical" と同じパスにマッチするが, ホスト名の
   正規化が有効なことを要求しない "Match final" 述語を ssh_config に
   追加する. bz#2906

 * sftp(1): Support a prefix of '@' to suppress echo of sftp batch
   commands; bz#2926

   sftp(1): sftp バッチコマンドのエコーを抑制する '@' プレフィックスを
   サポートする.

 * ssh-keygen(1): When printing certificate contents using
   "ssh-keygen -Lf /path/certificate", include the algorithm that
   the CA used to sign the cert.

   ssh-keygen(1): "ssh-keygen -Lf /path/certificate" を用いて
   証明書の内容を出力する場合に, 証明書に署名をした CA が用いた
   アルゴリズムを含める.

Bugfixes
--------

バグ修正

 * sshd(8): Fix authentication failures when sshd_config contains
   "AuthenticationMethods any" inside a Match block that overrides
   a more restrictive default.

   sshd(8): sshd_config が "AuthenticationMethods any" を Match ブロック
   内に含んでいて より制約のあるデフォルトを上書きしている場合の
   認証失敗を修正する.

 * sshd(8): Avoid sending duplicate keepalives when ClientAliveCount
   is enabled.

   sshd(8): ClientAliveCount が有効な場合に重複した keepalive の送信を
   やめる.

 * sshd(8): Fix two race conditions related to SIGHUP daemon restart.
   Remnant file descriptors in recently-forked child processes could
   block the parent sshd's attempt to listen(2) to the configured
   addresses. Also, the restarting parent sshd could exit before any
   child processes that were awaiting their re-execution state had
   completed reading it, leaving them in a fallback path.

   sshd(8): SIGHUP でのデーモン再起動に関連する 2 つの競合状態を修正する.
   最近フォークされた子プロセスの残りのファイルデスクリプタが
   親の sshd が 設定されたアドレスで listen(2) しようとするのを
   ブロックする場合があった. また, 再実行状態を待っていた子プロセスが
   読み取りを完了する前に親の sshd を再起動が終了し,
   フォールバックパスに子プロセスが残る場合があった.

 * ssh(1): Fix stdout potentially being redirected to /dev/null when
   ProxyCommand=- was in use.

   ssh(1): ProxyCommand=- を利用する場合に stdout が /dev/null に
   リダイレクトされる潜在的な可能性を修正する.

 * sshd(8): Avoid sending SIGPIPE to child processes if they attempt
   to write to stderr after their parent processes have exited;
   bz#2071

   sshd(8): 子プロセスが 親プロセスが終了した後で stderr に書きこもうと
   する場合に SIGPIPE を 子プロセスに送るのをやめる. bz#2071

 * ssh(1): Fix bad interaction between the ssh_config ConnectTimeout
   and ConnectionAttempts directives - connection attempts after the
   first were ignoring the requested timeout; bz#2918

   ssh_config の ConnectTimeout, と ConnectionAttempts 設定項目間の
   悪い相互作用を修正する.  1回目より後の接続試行で要求されたタイムアウトを
   無視していた. bz#2918

 * ssh-keyscan(1): Return a non-zero exit status if no keys were
   found; bz#2903

   ssh-keyscan(1): 鍵が見つからなかった場合に 0 でない終了ステータスを
   返す. bz#2903

 * scp(1): Sanitize scp filenames to allow UTF-8 characters without
   terminal control sequences;  bz#2434

   scp(1): 端末制御シーケンスを含まない UTF-8 文字列を許すように scp の
   ファイル名を無害化する; bz#2434

 * sshd(8): Fix confusion between ClientAliveInterval and time-based
   RekeyLimit that could cause connections to be incorrectly closed.
   bz#2757

   sshd(8): 接続を不正に終了させてしまう ClientAliveInterval と
   時間ベースの RekeyLimit の間の混乱を修正する. bz#2757

 * ssh(1), ssh-add(1): Correct some bugs in PKCS#11 token PIN
   handling at initial token login. The attempt to read the PIN
   could be skipped in some cases, particularly on devices with
   integrated PIN readers. This would lead to an inability to
   retrieve keys from these tokens. bz#2652

   ssh(1), ssh-add(1): 最初のトークンログイン時の PKCS#11 トークン
   PIN の扱いのいくつかのバグを修正する. いくつかの場合, 特に PIN 読み取り機が
   統合されたデバイス上で, PIN の 読み取りの試行がスキップされる場合があった.
   これにより, これらのトークンから鍵を取り出すことができなくなっていた.
   bz#2652

 * ssh(1), ssh-add(1): Support keys on PKCS#11 tokens that set the
   CKA_ALWAYS_AUTHENTICATE flag by requring a fresh login after the
   C_SignInit operation. bz#2638

   ssh(1), ssh-add(1): C_SignInit 操作の後に新しいログインを要求する
   CKA_ALWAYS_AUTHENTICATE フラグを設定する PKCS#11 トークンの鍵を
   サポートする.

 * ssh(1): Improve documentation for ProxyJump/-J, clarifying that
   local configuration does not apply to jump hosts.

   ssh(1): ProxyJump/-J の文書を改善し, ローカルの設定がホストのジャンプに
   適用されないことを明確にする.

 * ssh-keygen(1): Clarify manual - ssh-keygen -e only writes
   public keys, not private.

   ssh-keygen(1): マニュアルを明確化する. ssh-keygen -e は
   公開鍵のみ書き込み, 秘密鍵に書き込まない.

 * ssh(1), sshd(8): be more strict in processing protocol banners,
   allowing \r characters only immediately before \n.

   ssh(1), sshd(8): プロトコルバナーの処理をより厳格にする.
   \r 文字は \n の直前のみ許可する.

 * Various: fix a number of memory leaks, including bz#2942 and
   bz#2938

   いろいろ: たくさんのメモリリークを修正する, bz#2942 と bz#2938 を含む.

 * scp(1), sftp(1): fix calculation of initial bandwidth limits.
   Account for bytes written before the timer starts and adjust the
   schedule on which recalculations are performed. Avoids an initial
   burst of traffic and yields more accurate bandwidth limits;
   bz#2927

   scp(1), sftp(1): 最初の帯域制限の計算を修正する.
   タイマーがスタートする前の書き込みバイト数を考慮し,
   再計算が行なわれるスケジュールを調整する. 最初のトラフィックの
   バースを防ぎ, より正確な帯域制限を生成する; bz#2927

 * sshd(8): Only consider the ext-info-c extension during the initial
   key eschange. It shouldn't be sent in subsequent ones, but if it
   is present we should ignore it. This prevents sshd from sending a
   SSH_MSG_EXT_INFO for REKEX for buggy these clients. bz#2929

   sshd(8): 最初の鍵交換中の ext-intro-c 拡張のみを考慮する. 
   これは最初の鍵交換より後で送られるべきではないが, 送られても
   無視するべきだ. これにより, バグのあるクライアントに sshd が
   SSH_MSG_EXT_INFO を鍵交換のために送るのを防ぐ. bz#2929

 * ssh-keygen(1): Clarify manual that ssh-keygen -F (find host in 
   authorized_keys) and -R (remove host from authorized_keys) options
   may accept either a bare hostname or a [hostname]:port combo.
   bz#2935

   ssh-keygen(1): ssh-keygen -F (authorized_keys 中でホストをさがす) と
   -R (authorized_keys からホストを除く) オプションが生のホスト名も
   [hostname]:port の組合せも受け付けることをマニュアルで明確にする.
   bz#2935

 * ssh(1): Don't attempt to connect to empty SSH_AUTH_SOCK; bz#2936

   ssh(1): 空の SSH_AUTH_SOCK に接続しないようにする; bz#2936

 * sshd(8): Silence error messages when sshd fails to load some of
   the default host keys. Failure to load an explicitly-configured
   hostkey is still an error, and failure to load any host key is
   still fatal. pr/103

   sshd(8): sshd がデフォルトのホスト鍵のいくつかのロードに失敗した場合に
   エラーメッセージを出さなくする. 明示的に設定されたホスト鍵のロードの
   失敗は error のままで, どのホスト鍵のロードにも失敗したなら
   fatal のまま. pr/103

 * ssh(1): Redirect stderr of ProxyCommands to /dev/null when ssh is
   started with ControlPersist; prevents random ProxyCommand output
   from interfering with session output.

   ssh(1): ssh が ControlPersist で始まったなら, ProxyCommand の stderr
   は /dev/null にリダイレクトする. ランダムな ProxyCommand の出力が
   セッションの出力に干渉するのを防ぐ.

 * ssh(1): The ssh client was keeping a redundant ssh-agent socket
   (leftover from authentication) around for the life of the
   connection; bz#2912

   ssh(1): ssh のクラアイントは 冗長な ssh-agent ソケット (認証からの残り)
   を接続の間中保持していた; bz#2912

 * sshd(8): Fix bug in HostbasedAcceptedKeyTypes and
   PubkeyAcceptedKeyTypes options. If only RSA-SHA2 siganture types
   were specified, then authentication would always fail for RSA keys
   as the monitor checks only the base key (not the signature
   algorithm) type against *AcceptedKeyTypes. bz#2746

   HostbasedAcceptedKeyTypes と PubkeyAcceptedKeyTypes 設定項目の
   バグを修正する. RSA-SHA2 署名タイプのみ指定された場合,
   モニターが*AcceptedKeyTypes に対して  (署名アルゴリズムではなく)
   ベースの鍵のタイプのみをチェックし, 認証が RSA 鍵に対して常に失敗してしまう.

 * ssh(1): Request correct signature types from ssh-agent when
   certificate keys and RSA-SHA2 signatures are in use.

   ssh(1): 証明書の鍵と RSA-SHA2 署名を利用中に ssh-agent から
   正しい署名タイプを要求する.

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

移植性

 * sshd(8): On Cygwin, run as SYSTEM where possible, using S4U for
   token creation if it supports MsV1_0 S4U Logon.

   sshd(8): Cygwin 上で, MsV1_0 S4U ログオンをサポートしているならば
   トークンの生成に S4U を利用して, 可能ならば SYSTEM として走る

 * sshd(8): On Cygwin, use custom user/group matching code that
   respects the OS' behaviour of case-insensitive matching.

   sshd(8): Cygwin 上で, 大文字小文字を区別しない OS の振舞いを
   尊重したカスタムの user/group 一致コードを利用する.

 * sshd(8): Don't set $MAIL if UsePAM=yes as PAM typically specifies
   the user environment if it's enabled; bz#2937

   sshd(8): PAM が有効な場合に PAM が典型的にユーザの環境を設定するように
   UsePAM=yes の場合に $MAIL を設定しない. bz#2937

 * sshd(8) Cygwin: Change service name to cygsshd to avoid collision
   with Microsoft's OpenSSH port.

   sshd(8) Cygwin: Microsoft の OpenSSH 移植と衝突しないようにサービス名を
   cygssdh に変更する.

 * Allow building against OpenSSL -dev (3.x)

   OpenSSH 開発版 (3.x) でのビルドを可能にする

 * Fix a number of build problems against version configurations and
   versions of OpenSSL. Including bz#2931 and bz#2921

   OpenSSL のバージョン設定とバージョンに対するビルドのたくさんの問題を
   修正する. bz#2931 と bz#2921 を含む

 * Improve warnings in cygwin service setup. bz#2922

   cygwin のサービス設定での警告を改善する. bz#2922

 * Remove hardcoded service name in cygwin setup. bz#2922

   cygwin設定のでハードコードされたサービス名を除く. bz#2922