https://www.openssh.com/txt/release-8.5 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 future. 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 upgraded. ホスト鍵検証が失敗し他にサポートされたホスト鍵の種類がない場合, ホストのサーバソフトウェアをアップグレードする必要がある. This release enables the UpdateHostKeys option by default to assist the client by automatically migrating to better algorithms. このリリースで, クライアントがよりよいアルゴリズムに 自動的に移行できるようにする 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 Security ======== セキュリティ * ssh-agent(1): fixed a double-free memory corruption that was introduced in OpenSSH 8.2 . We treat all such memory faults as potentially exploitable. This bug could be reached by an attacker with access to the agent socket. ssh-agent(1): OpenSSH 8.2 で導入されてしまった double-free メモリ 破壊を修正した. 我々はこのようなメモリの問題はすべて潜在的に 悪用可能として取り扱う. このバグは, エージェントのソケット を通じて攻撃者が到達可能だった. On modern operating systems where the OS can provide information about the user identity connected to a socket, OpenSSH ssh-agent and sshd limit agent socket access only to the originating user and root. Additional mitigation may be afforded by the system's malloc(3)/free(3) implementation, if it detects double-free conditions. 現代的なオペレーティングシステムでは, OS はソケットに接続するための ユーザ識別についての情報を提供する. OpenSSH ssh-agent と sshd は エージェントのソケットへのアクセスは, 元々のユーザと root のみに 制限されている. システムの malloc(3)/free(3) の実装が double-free の状況を検知するならば, 追加の緩和策が存在する場合がある. The most likely scenario for exploitation is a user forwarding an agent either to an account shared with a malicious user or to a host with an attacker holding root access. もっともありそうな悪用のシナリオは, 悪意のあるユーザと共有しているアカウントや root アクセスを 持つ攻撃者のホストにエージェントをユーザが転送する場合だ. * Portable sshd(8): Prevent excessively long username going to 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 移植版 sshd(8): 長すぎるユーザ名を PAM に送るのを防ぐ. これは, 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. - The default UserKnownHostsFile is in use. ssh(1): 次の保守的な事前条件の元で, このリリースは UpdateHostkeys を デフォルトで有効にする. - UserKnownHostsFile で鍵が一致する (また, GlobalKnownHostsFile では一致しない) - 別の名前で同じ鍵が存在しない - 証明書ホスト鍵を利用中ではない - known_hosts に一致するワイルドカードホスト名パターンを含まない - VerifyHostKeyDNS が有効ではない - デフォルトの UserKnownHostsFile が利用中. 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 option 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): add a ssh_config PermitRemoteOpen option that allows the client to restrict the destination when RemoteForward is used with SOCKS. ssh(1): ssh_config に PermitRemoteOpen 設定項目を追加する. クライアントは, RemoteForward が SOCKS と共に利用された際に 送信先を制限できるようになる. * 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 provide more fine-grained control on a per-origin address basis than the global MaxStartups limit. sshd(8): グローバルな MaxStartups の制限よりも origin 単位の アドレスを基にした細かな制御ができる 新しい 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 をレポートするわけではない.