2025/08,09 学習のまとめ
近況: ある案件でフルタイムで稼働中です。副業的なものはいまは募集していません。
イベント
Goオンラインもくもく会 - connpass
毎回ではないですが参加しています。 最近は Go には関係ない プログラング言語Idrisに入門させたい(v0.9) をやっています。
近況: ある案件でフルタイムで稼働中です。副業的なものはいまは募集していません。
毎回ではないですが参加しています。 最近は Go には関係ない プログラング言語Idrisに入門させたい(v0.9) をやっています。
2025/10/10, OpenSSH 10.2p1 がリリースされました.
# https://www.openssh.com/releasenotes.html#10.0p1
Potentially-incompatible changes
--------------------------------
潜在的に非互換な変更
* This release removes support for the weak DSA signature
algorithm, completing the deprecation process that began in
2015 (when DSA was disabled by default) and repeatedly warned
over the last 12 months.
このリリースでは、弱いDSA署名アルゴリズムのサポートが削除されます。
これは、2015年にデフォルトで無効化され、
過去12か月間にわたり繰り返し警告されてきた非推奨プロセスの完了を意味する。
* scp(1), sftp(1): pass "ControlMaster no" to ssh when invoked by
scp & sftp. This disables implicit session creation by these
tools when ControlMaster was set to yes/auto by configuration,
which some users found surprising. This change will not prevent
scp/sftp from using an existing multiplexing session if one had
already been created. GHPR557
scp(1), sftp(1): scp および sftp が ssh を呼び出す際に ControlMaster no を渡す。
ControlMaster が yes/auto に設定されている場合に、これらのツールが暗黙的にセッションを作成しないようになる。
この変更は、すでに作成済みの多重化セッションを scp/sftp が使用することは妨げない。GHPR557
* This release has the version number 10.0 and announces itself
as "SSH-2.0-OpenSSH_10.0". Software that naively matches
versions using patterns like "OpenSSH_1*" may be confused by
this.
このリリースのバージョン番号は 10.0 であり、
自身を "SSH-2.0-OpenSSH_10.0" として通知する。
バージョンを "OpenSSH_1*" のようなパターンで
単純に照合しているソフトウェアでは、
問題が発生するかもしれない。
* sshd(8): this release removes the code responsible for the
user authentication phase of the protocol from the per-
connection sshd-session binary to a new sshd-auth binary.
Splitting this code into a separate binary ensures that the
crucial pre-authentication attack surface has an entirely
disjoint address space from the code used for the rest of the
connection. It also yields a small runtime memory saving as the
authentication code will be unloaded after the authentication
phase completes. This change should be largely invisible to
users, though some log messages may now come from "sshd-auth"
instead of "sshd-session". Downstream distributors of OpenSSH
will need to package the sshd-auth binary.
sshd(8): このリリースでは、プロトコルのユーザー認証フェーズを処理するコードを、
接続ごとの sshd-session バイナリから、新しい sshd-auth バイナリに移動する。
このコードを別のバイナリに分離することで、重大な認証前の攻撃対象領域が
接続の残りで利用されるコードから完全に別のアドレス空間を持つことを保証する。
また、認証フェーズが完了したあとで認証コードがアンロードされるので、
ランタイムのメモリ使用量も若干削減される。
この変更はほとんどのユーザーにとっては目に見えませんが、
一部のログメッセージが "sshd-session" ではなく "sshd-auth" から出力される場合がある。
OpenSSH をパッケージ化する下流のディストリビューターは、sshd-auth バイナリを含める必要がある。
* sshd(8): this release disables finite field (a.k.a modp)
Diffie-Hellman key exchange in sshd by default. Specifically,
this removes the "diffie-hellman-group*" and
"diffie-hellman-group-exchange-*" methods from the default
KEXAlgorithms list. The client is unchanged and continues to
support these methods by default. Finite field Diffie Hellman
is slow and computationally expensive for the same security
level as Elliptic Curve DH or PQ key agreement while offering
no redeeming advantages. ECDH has been specified for the SSH
protocol for 15 years and some form of ECDH has been the default
key exchange in OpenSSH for the last 14 years.
sshd(8): このリリースでは、有限体(modp)Diffie-Hellman 鍵交換がデフォルトで無効化される。
具体的には、diffie-hellman-group* および diffie-hellman-group-exchange-*
のメソッドがデフォルトの KEXAlgorithms リストから削除される。
クライアントは変更されず、これらのメソッドをデフォルトで引き続きサポートする。
有限体 Diffie-Hellman は、同じセキュリティレベルの Elliptic Curve DH や PQ 鍵合意と比較して、
速度が遅く、計算コストが高い一方で、特に優れた利点を持たない。
ECDH は SSH プロトコルにおいて 15 年前から標準化されており、
ECDH のいくつかの形式が OpenSSH では 14 年間デフォルトの鍵交換アルゴリズムとして採用されている。
* sshd(8): this release removes the implicit fallback to compiled-
in groups for Diffie-Hellman Group Exchange KEX when the moduli
file exists but does not contain moduli within the client-
requested range. The fallback behaviour remains for the case
where the moduli file does not exist at all. This allows
administrators more explicit control over which DH groups will
be selected, but can lead to connection failures if the moduli
file is edited incorrectly. bz#2793
sshd(8): このリリースで moduli ファイルが存在するが、クライアントが要求した範囲の
moduli が含まれていない場合に、コンパイル済みのグループへフォールバックする機能が削除される。
moduli ファイルがまったく存在しない場合には、フォールバック動作が維持される。
これにより管理者は使用する Diffie-Hellman グループをより明確に制御できるが、
moduli ファイルの編集を誤ると接続エラーの原因となる場合がある。bz#2793
Changes since OpenSSH 9.9
=========================
OpenSSH 9.9 からの変更点
This release contains a minor security fix as well as a number of
feature improvements and bugfixes.
このリリースにはマイナーなセキュリティ修正と数多くの特徴の改善、
バグ修正が含まれている。
Security
========
セキュリティ
* sshd(8): fix the DisableForwarding directive, which was failing
to disable X11 forwarding and agent forwarding as documented.
X11 forwarding is disabled by default in the server and agent
forwarding is off by default in the client.
sshd(8): DisableForwarding 設定項目がドキュメント通りに
X11 転送とエージェント転送を無効にできていなかったのを修正する。
サーバーで X11 転送はデフォルトで無効で、クライアントでエージェント転送は
デフォルトで無効だ。
New features
------------
新機能
* ssh(1): the hybrid post-quantum algorithm mlkem768x25519-sha256
is now used by default for key agreement. This algorithm is
considered to be safe against attack by quantum computers,
is guaranteed to be no less strong than the popular
curve25519-sha256 algorithm, has been standardised by NIST
and is considerably faster than the previous default.
ssh(1): ポスト量子ハイブリッドアルゴリズム mlkem768x25519-sha256 が
鍵合意にデフォルトで利用される。このアルゴリズムは量子コンピュータによる
攻撃に対して安全と考えられ、curve25519-sha256 よりも強度が低くなることが保証されていて、
NIST によって標準化されており、以前のデフォルトよりも高速です。
* ssh(1): prefer AES-GCM to AES-CTR mode when selecting a cipher
for the connection. The default cipher preference list is now
Chacha20/Poly1305, AES-GCM (128/256) followed by AES-CTR
(128/192/256).
ssh(1): 接続に使用する暗号方式として、AES-CTR よりも AES-GCM を優先する。
デフォルトの暗号優先リストは Chacha20/Poly1305、AES-GCM (128/256)、
AES-CTR (128/192/256) となる。
* ssh(1): add %-token and environment variable expansion to the
ssh_config SetEnv directive.
ssh(1): ssh_config の SetEnv 設定項目で
% トークンと環境変数の展開が追加される。
* ssh(1): allow %-token and environment variable expansion in
the ssh_config User directive, with the exception of %r and %C
which would be self-referential. bz#3477
ssh(1): ssh_config の User ディレクティブで % トークンと環境変数の展開が可能になる。
ただし、自己参照となる %r および %C は除外される。bz#3477
* ssh(1), sshd(8): add "Match version" support to ssh_config and
sshd_config. Allows matching on the local version of OpenSSH,
e.g. "Match version OpenSSH_10.*".
ssh(1)、sshd(8): "Match version" のサポートが ssh_config および
sshd_config に追加される。OpenSSH のローカルなバージョンに対して条件を設定できる。
例えば "Match version OpenSSH_10.*"。
* ssh(1): add support for "Match sessiontype" to ssh_config.
Allows matching on the type of session initially requested,
either "shell" for interactive sessions, "exec" for command
execution sessions, "subsystem" for subsystem requests, such as
sftp, or "none" for transport/forwarding-only sessions.
ssh(1): "Match sessiontype" のサポートを追加する。
最初にリクエストされたセッションのタイプに対して条件を設定できる。
タイプには、インタラクティブなセッションに対する
"shell"、 コマンド実行セッションに対する "exec", sftp のようなサブシステム要求
に対する "subsystem"、トランスポート/転送のみのセッションに対する "none"
がある。
* ssh(1): add support for "Match command ..." support to
ssh_config, allowing matching on the remote command as specified
on the command-line.
ssh(1): ssh_config で "Match command ..." をサポートする。
コマンドラインで指定されたリモートコマンドに基づいて条件を設定できる。
* ssh(1): allow 'Match tagged ""' and 'Match command ""' to match
empty tag and command values respectively.
ssh(1): 'Match tagged ""' および 'Match command ""' を許可する。
それぞれ空のタグおよび空のコマンド値にマッチする。
* sshd(8): allow glob(3) patterns to be used in sshd_config
AuthorizedKeysFile and AuthorizedPrincipalsFile directives.
bz2755
sshd(8): sshd_config の AuthorizedKeysFile および AuthorizedPrincipalsFile
設定項目で glob(3) パターンの使用を許可する。bz2755
* sshd(1): support the VersionAddendum in the client, mirroring
the option of the same name in the server; bz2745
sshd(1): クライアントに VersionAddendum のサポートを追加し、
サーバーの同名のオプションと対応させる。bz2745
* ssh-agent(1): the agent will now delete all loaded keys when
signaled with SIGUSR1. This allows deletion of keys without
having access to $SSH_AUTH_SOCK.
ssh-agent(1): SIGUSR1 シグナルを受信した際に、エージェントがロードされているすべての鍵を削除する。
これにより $SSH_AUTH_SOCK へのアクセスなしに鍵を削除できる。
* Portable OpenSSH, ssh-agent(1): support systemd-style socket
activation in ssh-agent using the LISTEN_PID/LISTEN_FDS
mechanism. Activated when these environment variables are set,
the agent is started with the -d or -D option and no socket path
is set. GHPR502
移植版 OpenSSH, ssh-agent(1): ssh-agent で LISTEN_PID/LISTEN_FDS メカニズムを使用する
systemd スタイルのソケットアクティベーションをサポートする。
これらの環境変数が設定され、エージェントが -d または -D オプション付きで起動され、
ソケットパスが設定されていない場合に有効となる。GHPR502
* ssh-keygen(1): support FIDO tokens that return no attestation
data, e.g. recent WinHello. GHPR542
ssh-keygen(1): FIDO トークンが証明データを返さない場合のサポートを追加する。
例えば最近の WinHello。GHPR542
* ssh-agent(1): add a "-Owebsafe-allow=..." option to allow the
default FIDO application ID allow-list to be overridden.
ssh-agent(1): "-Owebsafe-allow=..." オプションを追加する。
デフォルトの FIDO アプリケーション ID の許可リストを上書きできる。
* Add a work-in-progress tool to verify FIDO attestation blobs
that ssh-keygen can optionally write when enrolling FIDO keys.
This tool is available under regress/misc/ssh-verify-attestation
for experimentation but is not installed by "make install".
ssh-keygen で FIDO 鍵を登録する際にオプションで書き込める FIDO 証明データの検証を可能にする
実験的なツールを追加する。このツールは regress/misc/ssh-verify-attestation にあり
実験目的で利用できるが、"make install" ではインストールされない。
* ssh-keygen(1): allow "-" as output file for moduli screening.
GHPR393
ssh-keygen(1): モジュラススクリーニングの出力ファイルとして "-" を許可する。
GHPR393
Bugfixes
--------
バグ修正
* sshd(8): remove assumption that the sshd_config and any configs
it includes can fit in a (possibly enlarged) socket buffer.
Previously it was possible to create a sufficiently large
configuration that could cause sshd to fail to accept any
connection. sshd(8) will now actively manage sending its config
to the sshd-session sub-process.
sshd(8): sshd_config およびそのインクルードされた設定ファイルが
(拡張された場合でも) ソケットバッファに収まることを前提とする動作を削除する。
以前は、shd が接続を受け付けられなくできる大きさの設定ファイルを作成
することができた。
sshd(8) は 今は sshd-session サブプロセスへの設定の送信を適切に管理する。
* ssh(1): don't start the ObscureKeystrokeTiming mitigations if
there has been traffic on a X11 forwarding channel recently.
Should fix X11 forwarding performance problems when this setting
is enabled. bz3655
ssh(1): X11 フォワーディングチャネルで最近トラフィックがあった場合、
ObscureKeystrokeTiming の緩和策を開始しないようにする。
これにより、この設定が有効な場合の X11 フォワーディングの
パフォーマンス問題を修正する。bz3655
* ssh(1): prohibit the comma character in hostnames accepted, but
allow an underscore as the first character in a hostname.
ssh(1): 許可されるホスト名にカンマを含めることを禁止する。
一方、ホスト名の先頭にアンダースコアを許可する。
* sftp(1): set high-water when resuming a "put". Prevents bogus
"server reordered acks" debug message.
sftp(1): "put" の再開時にハイウォーターを設定する。
これにより、不正な "server reordered acks" のデバッグメッセージを防ぐ。
* ssh(1), sshd(8): fix regression in openssh-9.8, which would fail
to accept "Match criteria=argument" as well as the documented
"Match criteria argument" syntax in ssh_config and sshd_config.
bz3739
ssh(1), sshd(8): openssh-9.8 のリグレッションを修正し、
ssh_config および sshd_config において "Match criteria=argument" 形式と、
ドキュメントに記載されている "Match criteria argument" 形式の両方を受け付ける。
bz3739
* sftp(1), ssh(1): fix a number possible NULL dereference bugs,
including Coverity CIDs 405019 and 477813.
sftp(1), ssh(1): NULL デリファレンスが発生する可能性のあるバグをいくつか修正する。
Coverity CIDs 405019 および 477813 を含む。
* sshd(8): fix PerSourcePenalty incorrectly using "crash" penalty
when LoginGraceTime was exceeded. bz3797
sshd(8): PerSourcePenalty が LoginGraceTime を超えた場合に誤って
"crash" ペナルティを適用する問題を修正する。bz3797
* sshd(8): fix "Match invalid-user" from incorrectly being
activated in initial configuration pass when no other predicates
were present on the match line
sshd(8): "Match invalid-user" が、他の条件がない場合に最初の設定パスで誤って適用される問題を修正する。
* sshd(8): fix debug logging of user specific delay. GHPR#552
sshd(8): ユーザー固有の遅延のデバッグログを修正する。GHPR#552
* sshd(8): improve debug logging across sub-process boundaries.
Previously some log messages were lost early in the sshd-auth and
sshd-session processes' life.
sshd(8): サブプロセス間でのデバッグログの改善する。
これにより、sshd-auth および sshd-session の初期に
いくつかのログメッセージが失われていた問題を解消した。
* ssh(1): require control-escape character sequences passed via
the '-e ^x' command-line to be exactly two characters long. Avoids
one byte out-of-bounds read if ssh is invoked as "ssh -e^ ..."
GHPR368
ssh(1): '-e ^x' のようなコマンドラインで渡されるコントロールエスケープ文字列が必ず2文字であることを要求する。
これにより、"ssh -e^ ..." のような誤った入力による1バイトのバッファオーバーリードを防ぐ。GHPR368
* ssh(1), sshd(8): prevent integer overflow in x11 port handling.
These are theoretically possible if the admin misconfigured
X11DisplayOffset or the user misconfigures their own $DISPLAY,
but don't happen in normal operation. bz#3730
ssh(1), sshd(8): x11 ポート処理における整数オーバーフローを防ぐ。
これは、管理者が X11DisplayOffset を誤設定した場合や、
ユーザーが $DISPLAY を誤設定した場合に理論的には発生する可能性があるが、
通常の運用では起こらない。bz#3730
* ssh-keygen(1): don't mess up ssh-keygen -l output when the file
contains CR characters; GHPR236 bz3385.
ssh-keygen(1): CR 文字を含むファイルで ssh-keygen -l
の出力が乱れる問題を修正する。GHPR236 bz3385
* sshd(8): add rate limits to logging of connections dropped by
PerSourcePenalties. Previously these could be noisy in logs.
sshd(8): PerSourcePenalties によって接続が拒否された際のログ出力に
レート制限を追加する。これにより、ログが過剰に出力されるのを防ぐ。
* ssh(1): fix argument of "Compression" directive in ssh -G config
dump, which regressed in openssh-9.8.
ssh(1): ssh -G の設定ダンプ時に Compression ディレクティブの引数が正しく出力されない問題を修正する。
openssh-9.8 でのリグレッション。
* sshd(8): fix a corner-case triggered by UpdateHostKeys when sshd
refuses to accept the signature returned by an agent holding host
keys during the hostkey rotation sub-protocol. This situation
could occur in situations where a PKCS#11 smartcard that lacked
support for particular signature algorithms was used to store
host keys.
sshd(8): UpdateHostKeys の際に、ホストキーのローテーション中にエージェントが返した署名を
sshd が拒否するコーナーケースを修正する。
この問題は、特定の署名アルゴリズムをサポートしない
PKCS#11 スマートカードをホストキーの保存に使用していた場合に発生する可能性があった。
* ssh-keygen(1): when using RSA keys to sign messages with
"ssh-keygen -Y", select the signature algorithm based on the
requested hash algorithm ("-Ohashalg=xxx"). This allows using
something other than the default of rsa-sha2-512, which may not
be supported on all signing backends, e.g. some smartcards only
support SHA256.
ssh-keygen(1): "ssh-keygen -Y" で RSA 鍵を使用してメッセージに署名する際、
要求されたハッシュアルゴリズム ("-Ohashalg=xxx") に基づいて適切な署名アルゴリズムを選択する。
これにより、デフォルトの rsa-sha2-512 以外のアルゴリズムが選択可能となり、
一部のスマートカードで SHA256 のみサポートされている場合でも使用できるようになる。
* ssh(1), sshd(8), ssh-keyscan(1): fix ML-KEM768x25519 KEX on
big-endian systems.
ssh(1), sshd(8), ssh-keyscan(1): ビッグエンディアンシステムにおける
ML-KEM768x25519 鍵交換 (KEX) の問題を修正する。
* Many regression and interop test improvements.
多くのリグレッションテストおよび相互運用性テストの改善う。
Portability
-----------
移植性
* All: add support for AWS-LC (AWS libcrypto). bz3784
全体: AWS-LC (AWS libcrypto) のサポートを追加する。bz3784
* sshd(8): add wtmpdb support as a Y2038 safe wtmp replacement.
sshd(8): wtmpdb のサポートを追加し、wtmp の Y2038 問題を回避できる代替機能を提供する。
* sshd(8): add support for locking sshd into memory, enabled with
the --with-linux-memlock-onfault configure flag.
sshd(8): sshd をメモリ内にロックする機能を追加する。
この機能は --with-linux-memlock-onfault 構成フラグを有効にすることで利用できる。
* Add support for building a standalone sk-libfido2 library,
enabled by --with-security-key-standalone
sk-libfido2 ライブラリを単体でビルドする機能を追加する。
この機能は --with-security-key-standalone オプションを有効にすることで利用できる。
* ssh(1), sshd(8), ssh-keyscan(1): include __builtin_popcount
replacement function. for compilers that lack it.
ssh(1), sshd(8), ssh-keyscan(1): __builtin_popcount の代替関数を追加する。
これにより、該当の組み込み関数をサポートしていないコンパイラでも利用できるようになる。
* All: Check for and replace le32toh, le64toh, htole64 separately.
It appears that at least some versions of endian.h in glibc do
not have the latter two. bz#3794
全体: le32toh, le64toh, htole64 のチェックと置換を個別に行う。
一部の glibc の endian.h に le64toh や htole64 が含まれていない場合があるため。
bz#3794
* Remove ancient RHL 6.x config in RPM spec.
RPM スペックから古い RHL 6.x の設定を削除する。
2025/10/06、 OpenSSH 10.1p1 がリリースされました.
# https://www.openssh.com/releasenotes.html#10.1p1
Future deprecation warning
--------------------------
将来の非推奨の警告
* A future release of OpenSSH will deprecate support for SHA1 SSHFP
records due to weaknesses in the SHA1 hash function. SHA1 SSHFP
DNS records will be ignored and ssh-keygen -r will generate only
SHA256 SSHFP records.
OpenSSH の将来のリリースでは SHA1 ハッシュ関数の弱点により
SHA1 SSHFP レコードのサポートを廃止する。SHA1 SSHFP DNS レコードは
無視され、ssh-keygen -r は SHA256 SSHFP レコードのみを生成する。
The SHA256 hash algorithm, which has no known weaknesses, has
been supported for SSHFP records since OpenSSH 6.1, released in
2012.
SHA256 ハッシュアルゴリズムは既知の弱点がなく、2012年にリリースされた
OpenSSH 6.1 以来、SSHFP レコードでサポートされている。
Potentially-incompatible changes
--------------------------------
潜在的に非互換な変更
* ssh(1): add a warning when the connection negotiates a non-post
quantum key agreement algorithm.
ssh(1): ポスト量子鍵合意アルゴリズム以外で接続がネゴシエイトしたら
警告を追加する。
This warning has been added due to the risk of "store now, decrypt
later" attacks. More details at https://openssh.com/pq.html
この警告は、「今保存して、後で復号する」攻撃のリスクに対応するために
追加された。詳細は https://openssh.com/pq.html を参照。
This warning may be controlled via a new WarnWeakCrypto ssh_config
option, defaulting to on. This option is likely to control
additional weak crypto warnings in the future.
この警告は デフォルトが on の WarnWeakCrypto ssh_config 設定項目
によって制御できる。この設定項目は将来は弱い暗号の警告の制御
にも利用されるだろう。
* ssh(1), sshd(8): major changes to handling of DSCP marking/IPQoS
ssh(1), sshd(8): DSCP マーキング/IPQos の扱いの大きな変更。
In both client and server the default DSCP (a.k.a IPQoS) values
were revised and the way these values are used during runtime has
changed.
どちらのクライアントとサーバーでも、デフォルトの DSCP (別名 IPQoS)
値が改訂され、これらの値が実行時に使用される方法が変更された。
Interactive traffic is now assigned to the EF (Expedited
Forwarding) class by default. This provides more appropriate
packet prioritisation information for the intermediate network,
such as wireless media (cf. RFC 8325). Non-interactive traffic
will now use the operating system default DSCP marking. Both the
interactive and non-interactive DSCP values may be overridden via
the IPQoS keyword, described in ssh_config(5) and sshd_config(5).
対話的通信はデフォルトで EF (Expedited Forwarding) クラスに割り当て
られる。これにより、無線環境などの中間ネットワークに対してより適切な
パケット優先度情報が提供される (RFC 8325 を参照)。非対話的通信は
OS のデフォルト DSCP マークを利用する。対話的および非対話的の両方の
DSCP 値は ssh_config(5) と sshd_config(5) の IPQoS キーワードで
上書きできる。
The appropriate DSCP marking is now automatically selected and
updated as needed over the course of a connection's lifetime.
ssh(1) and sshd(8) will switch between the interactive and
non-interactive IPQoS values depending on the type of SSH
channels open at the time. For example, if an sftp session is
using the connection alongside a shell session, then the non-
interactive value will be used for the duration of the sftp. A
connection which contains only interactive sessions is marked EF.
接続の過程で適切な DSCP マークが自動的に選択され、必要に応じて更新される。
ssh(1) と sshd(8) は、開いている SSH チャネルの種類に応じて対話的または
非対話的の IPQoS 値を切り替える。例えば、sftp セッションがシェルセッションと
並行して接続を使用している場合、sftp の期間中は非対話的の値が使用される。
対話的セッションのみを含む接続は EF とマークされる。
* ssh(1), sshd(8): deprecate support for IPv4 type-of-service (ToS)
keywords in the IPQoS configuration directive.
ssh(1), sshd(8): IPQoS 設定項目での IPv4 Type-of-Service (ToS)
キーワードのサポートを廃止する。
Type of Service (ToS) was deprecated in the late nineties and
replaced with the Differentiated Services architecture, which
has significant advantages for operators because it offers more
granularity.
ToS (Type of Service) は90年代後半に廃止され、
Differentiated Services アーキテクチャに置き換えられた。
これはより細かな制御が可能という大きな利点がある。
OpenSSH switched its default IPQoS from ToS to DSCP values in
2018 (openssh-7.7).
OpenSSH は2018年にデフォルト IPQoS を ToS から DSCP に切り替えた
(openssh-7.7)。
IPQoS configurations with 'lowdelay', 'reliability', or
'throughput' will be ignored and will instead use the system
default QoS settings. Additionally, a debug message will be logged
about the deprecation with a suggestion to use DSCP QoS instead.
IPQoS 設定で 'lowdelay'、'reliability'、'throughput' を利用する場合は
無視され、代わりにシステムのデフォルト QoS 設定が使用される。
さらに、非推奨である旨と DSCP QoS を使うよう提案するデバッグメッセージが
記録される。
* ssh-add(1): when adding certificates to an agent, set the expiry
to the certificate expiry time plus a short (5 min) grace period.
ssh-add(1): 証明書をエージェントに追加する際、有効期限を証明書の期限に
短い (5分) 猶予を加えたものに設定する。
This will cause the agent to automatically remove certificates
shortly after they expire. A new ssh-add -N option disables this
behaviour.
これによりエージェントは証明書が期限切れとなった直後に自動的に削除
するようになる。新しい ssh-add -N オプションでこの挙動を無効化できる。
* All: remove experimental support for XMSS keys. This was never
enabled by default. We expect to implement a new post-quantum
signature scheme in the near future.
All: XMSS 鍵の実験的サポートを削除。これはデフォルトで有効化された
ことはなかった。近い将来、新しいポスト量子署名スキームを実装予定。
* ssh-agent(1), sshd(8): move agent listener sockets from /tmp to
under ~/.ssh/agent for both ssh-agent(1) and forwarded sockets
in sshd(8).
ssh-agent(1), sshd(8): ssh-agent(1) と sshd(8) での転送されたソケットで
エージェントリスナーソケットを /tmp から ~/.ssh/agent 配下に移動する。
This ensures processes that have restricted filesystem access
that includes /tmp do not ambiently have the ability to use keys
in an agent.
これにより、/tmp にアクセス権を持つ制限付きプロセスがエージェントの
鍵を利用できてしまうことを防止する。
Moving the default directory has the consequence that the OS will
no longer clean up stale agent sockets, so ssh-agent now gains
this ability.
デフォルトディレクトリを移動した結果、OS は古いエージェントソケットを
掃除しなくなるため、ssh-agent にこの機能を追加する。
To support $HOME on NFS, the socket path includes a truncated
hash of the hostname. ssh-agent will, by default, only clean up
sockets from the same hostname.
$HOME が NFS 上にある場合をサポートするため、ソケットパスには
ホスト名の切り詰めたハッシュが含まれる。ssh-agent はデフォルトで
同じホスト名のソケットのみを掃除する。
ssh-agent(1) gains some new flags: -U suppresses the automatic
cleanup of stale sockets when it starts. -u forces a cleanup
without keeping a running agent, -uu forces a cleanup that ignores
the hostname. -T makes ssh-agent put the socket back in /tmp.
ssh-agent(1) に新しいフラグを追加する:
-U は起動時の古いソケット自動掃除を抑制。
-u は実行中のエージェントを残さず掃除だけ実行。
-uu はホスト名を無視して掃除。
-T はソケットを再び /tmp に置く。
Changes since OpenSSH 10.0
==========================
OpenSSH 10.0 からの変更点
This release contains a minor security fix as well as a number of
feature improvements and bugfixes.
このリリースには小さなセキュリティ修正と多数の機能改善およびバグ修正が含まれる。
Security
========
セキュリティ
* ssh(1): disallow control characters in usernames passed via the
commandline or expanded using %-sequences from the configuration
file, and disallow \0 characters in ssh:// URIs.
ssh(1): コマンドラインで渡されたり設定ファイルの %-シーケンスで展開された
ユーザー名に制御文字を使用することを禁止し、ssh:// URI 内の \0 文字を禁止する。
If an ssh(1) commandline was constructed using usernames or URIs
obtained from an untrusted source, and if a ProxyCommand that uses
the %u expansion was configured, then it may be possible for an
attacker to inject shell expressions that may be executed when the
proxy command is started.
もし ssh(1) コマンドラインが信頼できないソースから取得した
ユーザー名や URI を使って構築され、%u 展開を使用する ProxyCommand が
設定されていた場合、攻撃者がプロキシコマンド起動時に実行される
可能性のあるシェル式を注入できる可能性がある。
We strongly recommend against using untrusted inputs to construct
ssh(1) commandlines.
信頼できない入力を使って ssh(1) コマンドラインを構築することは
強く推奨しない。
This change also relaxes the validity checks in one small way:
usernames supplied via the configuration file as literals (i.e.
that have no % expansion characters) are not subject to these
validity checks. This allows usernames that contain arbitrary
characters to be used, but only via configuration files. This is
done on the basis that ssh's configuration is trusted.
この変更は有効性チェックを1点だけ緩和する: リテラルとして設定ファイルで
提供されたユーザー名 (つまり % 展開文字を含まないもの)
This issue was reported by David Leadbeater.
この問題は David Leadbeater によって報告された。
New features
------------
新機能
ssh(1), sshd(8): add SIGINFO handlers to log active channel and
session information.
ssh(1), sshd(8): アクティブなチャネルとセッション情報をログに記録する
SIGINFO ハンドラを追加する。
* sshd(8): when refusing a certificate for user authentication, log
enough information to identify the certificate in addition to the
reason why it was being denied. Makes debugging certificate
authorisation problems a bit easier.
sshd(8): ユーザー認証で証明書を拒否する際、なぜ拒否したかの理由に加えて
証明書を特定できる十分な情報をログに記録する。証明書認可のデバッグが
少し容易になる。
* ssh(1), ssh-agent(1): support ed25519 keys hosted on PKCS#11
tokens.
ssh(1), ssh-agent(1): PKCS#11 トークン上の ed25519 鍵をサポートする。
* ssh(1): add a ssh_config(5) RefuseConnection option that, when
encountered while processing an active section in a
configuration terminates ssh(1) with an error message that
contains the argument to the option.
ssh(1): ssh_config(5) に RefuseConnection 設定項目を追加する。
アクティブなセクションの処理中にこの設定項目が検出された場合、
設定項目の引数を含むエラーメッセージ を出力して ssh(1) を終了する。
This may be useful for expressing reminders or warnings in config
files, for example:
これは設定ファイル内で注意喚起や警告を示すのに役立つ。例:
Match host foo
RefuseConnection "foo is deprecated, use splork instead"
* sshd(8): make the X11 display number check relative to
X11DisplayOffset. This will allow people to use X11DisplayOffset
to configure much higher port ranges if they really want, while
not changing the default behaviour.
sshd(8): X11 ディスプレイ番号のチェックを X11DisplayOffset に相対化する。
これにより、本当にユーザーが必要としている場合に
X11DisplayOffset を使って非常に広いポート範囲を設定できる
ようになるが、デフォルトの挙動は変更していない。
* unit tests: the unit test framework now includes some basic
benchmarking capabilities. Run with "make UNITTEST_BENCHMARK=yes"
on OpenBSD or "make unit-bench" on Portable OpenSSH.
ユニットテスト: フレームワークに簡易ベンチマーク機能を追加する。
OpenBSD では "make UNITTEST_BENCHMARK=yes"、Portable OpenSSH では
"make unit-bench" で実行可能。
Bugfixes
--------
バグ修正
* sshd(8): fix mistracking of MaxStartups process exits in some
situations. At worst, this could cause all MaxStartups slots to
fill and sshd to refuse new connections.
sshd(8): 一部状況で MaxStartups プロセス終了を誤って追跡する不具合を修正する。
最悪の場合、すべての MaxStartups スロットが埋まり新規接続を拒否する。
* ssh(1): fix delay on X client startup when ObscureKeystrokeTiming
is enabled. bz#3820
ssh(1): ObscureKeystrokeTiming 有効時に X クライアント起動が遅れる不具合を
修正する。bz#3820
* sshd(8): increase the maximum size of the supported configuration
from 256KB to 4MB, which ought to be enough for anybody. Fail
early and visibly when this limit is breached. bz3808
sshd(8): サポートする設定ファイルサイズの上限を 256KB から
誰にとっても十分な 4MB に拡張する。
この制限を超過した場合は即座にかつ明確に失敗する。bz3808
* sftp(1): avoid a fatal() when sftp tab-completes filenames that
share common utf-8 characters that don't encode to a complete
codepoint.
sftp(1): 完全なコードポイントにエンコードされない共通の UTF-8 文字を
共有するファイル名を sftp がタブ補完する際に、fatal() を回避する。
* sshd(8): avoid a race condition when the sshd-auth process exits
that could cause a spurious error message to be logged.
sshd(8): sshd-auth プロセス終了時の競合状態を回避する。
誤ったエラーメッセージが記録されるのを防止する。
* sshd(8): log at level INFO when PerSourcePenalties actually
blocks access to a source address range. Previously this was
logged at level VERBOSE, which hid enforcement actions under
default config settings.
* sshd(8): PerSourcePenalties が実際にアドレス範囲をブロックした際、
INFO レベルでログ出力する。以前は VERBOSE で出力され、
デフォルト設定ではブロックされたことが見えなかった。
* sshd(8): GssStrictAcceptor was missing from sshd -T output; fix
* sshd(8): sshd -T の出力に GssStrictAcceptor が欠落していた不具合を修正する。
* sshd(8): Make the MaxStartups and PerSourceNetBlockSize options
first-match-wins as advertised. bz3859
* sshd(8): MaxStartups および PerSourceNetBlockSize オプションを
ドキュメントどおり「最初にマッチしたものが優先」とする。bz3859
* ssh(1): fix an incorrect return value check in the local forward
cancellation path that would cause failed cancellations not to be
logged.
* ssh(1): ローカル転送キャンセルの処理で誤った戻り値チェックがあり、
失敗したキャンセルがログに残らない不具合を修正する。
* sshd(8): make "Match !final" not trigger a second parsing pass
of ssh_config (unless hostname canonicalisation or a separate
"Match final" does). bz3843
* sshd(8): "Match !final" が 2回目の ssh_config 解析を起動しないよう修正する
(ただしホスト名正規化や "Match final" がある場合を除く)。bz3843
* ssh(1): better debug diagnostics when loading keys. Will now list
key fingerprint and algorithm (not just algorithm number) as well
as making it explicit which keys didn't load.
* ssh(1): 鍵読み込み時のデバッグ情報を改善する。アルゴリズム番号だけでなく
フィンガープリントとアルゴリズムを出力し、読み込めなかった鍵を明示する。
* All: fix a number of memory leaks found by LeakSanitizer,
Coverity and manual inspection.
* All: LeakSanitizer、Coverity、手動検査で見つかった多数のメモリリークを修正する。
* sshd(8): Output the current name for PermitRootLogin's
"prohibit-password" in sshd -T instead of its deprecated alias
"without-password". bz#3788
* sshd(8): sshd -T で PermitRootLogin の 現在の名称である
"prohibit-password" を出力する。非推奨の "without-password" は使わない。bz#3788
* ssh(1): make writing known_hosts lines more atomic by writing
the entire line in one operation and using unbuffered stdio.
* ssh(1): known_hosts の行を書き込む際、行全体を一度に unbuffered stdio
で書き込むことでよりアトミックに書き込む。
Usually writes to this file are serialised on the "Are you sure
you want to continue connecting?" prompt, but if host key
checking is disabled and connections were being made with high
concurrency then interleaved writes might have been possible.
通常このファイルへの書き込みは "Are you sure you want to continue connecting?"
プロンプトで直列化されるが、ホスト鍵チェックが無効化されており、
高い並行性で接続が行われている場合、書き込みが入り組む可能性があった 。
Portability
-----------
移植性
* sshd(8): check the username didn't change during the PAM
transactions.
* sshd(8): PAM トランザクション中にユーザー名が変更されていないか確認する。
PAM modules can change the user during their execution, but
this is not supported by sshd(8). If such a case was incorrectly
configured by the system administrator, then sshd(8) could end up
using a different username to the one authorised by PAM.
PAMモジュールは実行中にユーザーを変更できるが、 sshd(8)ではこの機能はサポートしていない。
システム管理者が誤ってこのような設定を行った場合、sshd(8)は
PAMによって認証されたユーザー名とは異なるユーザー名を使用する可能性がある。
* sshd(8): don't log audit messages with UNKNOWN hostname to avoid
slow DNS lookups in the audit subsystem.
* sshd(8): 監査サブシステムで UNKNOWN なホスト名による遅い DNS ルックアップを
回避するため、そのような監査メッセージをログに記録しないようにする。
* All: when making a copy of struct passwd, ensure struct fields are
non-NULL. Android libc can return NULL pw_gecos, for example.
* All: struct passwd をコピーする際、フィールドが非 NULL であることを保証する。
例えば、Android libc は NULL な pw_gecos を返すことがある。
* All: Remove status bits from OpenSSL >=3 version check.
* All: OpenSSL >=3 のバージョンチェックからステータスビットを削除する。
* sshd(8), ssh(1): Use SSH_TUN_COMPAT_AF on FreeBSD. Otherwise tun
forwarding from other OSes fails as soon as the first IPv6 message
is sent by the other side (which is usually a Router Solicitation
ICMPv6 message which is sent as soon as the interface is up).
* sshd(8), ssh(1): FreeBSD で SSH_TUN_COMPAT_AF を使用する。
そうしないと、相手側が最初の IPv6 メッセージを送信した時点で
tun 転送が失敗する(通常はインターフェース起動直後に
送信されるルーター要請 ICMPv6 メッセージ)。
* ssh(1), ssh-agent(8): check for nlist function presence before
attempting to use it instead of relying on the presence of the
nlist.h header. Mac OS X, for example, has the header but not
the function in the 64bit libraries.
* ssh(1)、ssh-agent(8): nlist.h ヘッダーの存在に頼るのではなく、
nlist 関数の存在を確認してから使用を試みる。例えば
Mac OS X ではヘッダーは存在するが、関数は 64 ビットライブラリに存在しない。
* All: fill in missing system header files.
* All: 不足しているシステムヘッダーファイルを補完する。
Create replacement header files inside openbsd-compat for common
headers that are missing on a given platform. Usually these are
just empty, but in some cases they'll include the equivalent file.
This avoids having to wrap those includes in '#ifdef HAVE_FOO_H'
and reduces the diff between Portable OpenSSH and OpenBSD.
特定のプラットフォームで欠落している共通ヘッダーファイルの
代替ヘッダーファイルを openbsd-compat 内に作成する。通常これらは空ファイルだが、
場合によっては同等のファイルをインクルードする。これにより、
それらのインクルードを '#ifdef HAVE_FOO_H' で囲む必要がなくなり、
Portable OpenSSH と OpenBSD 間の差分が減少する。
* sshd(8): handle futex_time64 properly in seccomp sandbox
Previously we only allowed __NR_futex, but some 32-bit systems
apparently support __NR_futex_time64. We had support for this
in the sandbox, but because of a macro error only __NR_futex was
allowlisted.
* sshd(8): seccomp サンドボックスで futex_time64 を正しく処理する。
以前は __NR_futex のみ許可していたが、一部 32 ビットシステムは
__NR_futex_time64 をサポートしているようだ。サンドボックス内では
これに対応していたが、マクロエラーのため許可リストに
__NR_futex のみが登録されていた。
* Add contrib/gnome-ssh-askpass4 for GNOME 40+ using the GCR API.
* GNOME 40+ 用に GCR API を使用する contrib/gnome-ssh-askpass4 を追加する。
* sshd(8): let ga_init() fail gracefully if getgrouplist does.
Apparently getgrouplist() can fail on OSX when passed a
non-existent group name. Other platforms seem to return a group
list consisting of the numeric gid passed to the function. bz3848
* sshd(8): getgrouplist が失敗した場合に ga_init() が適切に失敗するように修正する。
OSX では、存在しないグループ名を渡した場合に getgrouplist() が失敗する可能性がある。
他のプラットフォームでは、関数に渡された数値の gid のみで構成されるグループリストを返すようだ。bz3848
* ssh-agent(1): exit 0 from SIGTERM under systemd socket-activation,
preventing a graceful shutdown of an agent via systemd from
incorrectly marking the service as "failed".
* ssh-agent(1): systemd ソケット起動下で SIGTERM による終了コード 0 を返すことで、
systemd 経由でのエージェントの正常なシャットダウンが妨げられ、
サービスが誤って「失敗」とマークされるのを防止する。
* build: wrap some autoconf macros in AC_CACHE_CHECK.
* build: 一部 autoconf マクロを AC_CACHE_CHECK でラップする。
This allows skipping/overriding the OSSH_CHECK_CFLAG_COMPILE and
OSSH_CHECK_CFLAG_LINK macros used to discover supported compiler
or linker flags. E.g.
これにより、例えば次のようにコンパイラやリンカのフラグを見付けるのに
OSSH_CHECK_CFLAG_COMPILE や OSSH_CHECK_CFLAG_LINK マクロをスキップまたは
上書きできる。例:
$ ./configure ossh_cv_cflag__fzero_call_used_regs_used=no
[...]
checking if cc supports compile flag -fzero-call-used-regs=used
and linking succeeds... (cached) no
OpenSSH 10.1 がリリース準備中です.
Call for testing: OpenSSH 10.1p1
# https://lists.mindrot.org/pipermail/openssh-unix-dev/2025-September/042141.html
Potentially-incompatible changes
--------------------------------
潜在的に非互換な変更
* ssh(1): add a warning when the connection negotiates a non-post
quantum key agreement algorithm.
* ssh(1): ポスト量子鍵合意アルゴリズム以外で接続がネゴシエイトしたら
警告を追加する。
This warning has been added due to the risk of "store now, decrypt
later" attacks. More details at https://openssh.com/pq.html
この警告は、「今保存して、後で復号する」攻撃のリスクに対応するために
追加された。詳細は https://openssh.com/pq.html を参照。
This warning may be controlled via a new WarnWeakCrypto ssh_config
option, defaulting to on. This option is likely to control
additional weak crypto warnings in the future.
この警告は デフォルトが on の WarnWeakCrypto ssh_config 設定項目
によって制御できる。この設定項目は将来は弱い暗号の警告の制御
にも利用されるだろう。
* ssh(1), sshd(8): major changes to handling of DSCP marking/IPQoS
* ssh(1), sshd(8): DSCP マーキング/IPQos の扱いの大きな変更。
Both the client and the server have changed the default DCSP
(a.k.a IPQos) values and the way these values are selected at
runtime.
クライアントとサーバーの双方で、デフォルトの DSCP (別名 IPQoS) 値と
実行時の選択方法が変更された。
Both endpoints now use Expedited Forward (EF) for interactive
traffic by default. This provides better prioritisation,
especially on wireless media (cf. RFC 8325). Non-interactive
traffic now uses the operating system default DSCP marking.
Both the interactive and non-interactive DSCP values may be
overridden via the IPQoS keyword in ssh_config(5) and
sshd_config(5).
両エンドポイントはデフォルトで対話的通信に Expedited Forward (EF)
を使うようになった。これにより、特に無線環境で優先度が改善される
(RFC 8325 を参照)。非対話的通信は OS のデフォルト DSCP マークを利用する。
対話的および非対話的の両方の DSCP 値は ssh_config(5) と sshd_config(5)
の IPQoS キーワードで上書きできる。
The DSCP value selected may now change over the course of a
connection. ssh(1) and sshd(8) will automatically select between
the interactive and non-interactive IPQoS values depending on
the type of SSH channels open. E.g. if a sftp session is using
the connectionn, then the non-interactive value will be used.
接続の過程で選択される DSCP 値は変化するようになった。ssh(1) と
sshd(8) は、開いている SSH チャネルの種類に応じて対話的または
非対話的の IPQoS 値を自動的に選択する。例: sftp セッションが使われて
いる場合は非対話的の値が利用される。
This is important now that the default interactive IPQoS is EF
(Expedited Forwarding), as many networks are configured to allow
only relatively small amounts of traffic of this class and they will
aggressively deprioritise the entire connection if this is exceeded.
デフォルトの対話的 IPQoS が EF (Expedited Forwarding) となったため、
これは重要である。多くのネットワークでは、このクラスのトラフィックを
比較的少量のみ許可するよう設定されており、この上限を超えると接続全体
の優先度を積極的に引き下げる。
* ssh-add(1): when adding certificates to an agent, set the expiry
to the certificate expiry time plus a short (5 min) grace period.
* ssh-add(1): 証明書をエージェントに追加する際、有効期限を証明書の期限に
短い (5分) 猶予を加えたものに設定する。
This will cause the agent to automtically remove certificates shortly
after they expire. A new ssh-add -N option disables this behaviour.
これによりエージェントは証明書が期限切れとなった直後に自動的に削除
するようになる。新しい ssh-add -N オプションでこの挙動を無効化できる。
* All: remove experimental support for XMSS keys. This was never
enabled by default. We expect to implement a new post-quantu
signature scheme in the near future.
* All: XMSS 鍵の実験的サポートを削除。これはデフォルトで有効化された
ことはなかった。近い将来、新しいポスト量子署名スキームを実装予定。
* ssh(1), sshd(8): deprecate support for IPv4 type-of-service (TOS)
keywords in the IPQoS configuration directive.
* ssh(1), sshd(8): IPQoS 設定項目での IPv4 Type-of-Service (TOS)
キーワードのサポートを廃止。
Type of Service (ToS) was deprecated in the late nineties and
replaced with the Differentiated Services architecture. Diffserv
has significant advantages for operators because this mechanism
offers more granularity.
ToS は90年代後半に廃止され、Differentiated Services アーキテクチャに
置き換えられた。DiffServ は運用者にとってより細かな制御が可能という
大きな利点がある。
OpenSSH switched its default IPQoS from ToS to DSCP values in 2018.
OpenSSH は2018年にデフォルト IPQoS を ToS から DSCP に切り替えた。
IPQoS configurations with 'lowdelay', 'reliability', or
'throughput' will be ignored and instead the system default QoS
settings apply. Additionally, a debug message is logged about the
deprecation with a suggestion to use DSCP.
'lowdelay'、'reliability'、'throughput' を利用する IPQoS 設定は無視され、
代わりにシステムのデフォルト QoS 設定が適用される。さらに、
非推奨である旨と DSCP を使うよう提案するデバッグメッセージが記録される。
* ssh-agent(1), sshd(8): move agent listener sockets from /tmp to
under ~/.ssh/agent for both ssh-agent(1) and forwarded sockets
in sshd(8).
* ssh-agent(1), sshd(8): ssh-agent(1) と sshd(8) での転送されたソケットで
エージェントリスナーソケットを /tmp から ~/.ssh/agent 配下に移動する。
This ensures processes that have restricted filesystem access
that includes /tmp do not ambiently have the ability to use keys
in an agent.
これにより、/tmp にアクセス権を持つ制限付きプロセスがエージェントの
鍵を利用できてしまうことを防止する。
Moving the default directory has the consequence that the OS will
no longer clean up stale agent sockets, so ssh-agent now gains
this ability.
デフォルトディレクトリを移動した結果、OS は古いエージェントソケットを
掃除しなくなるため、ssh-agent にこの機能を追加する。
To support $HOME on NFS, the socket path includes a truncated hash of
the hostname. ssh-agent will by default only clean up sockets from
the same hostname.
NFS 上の $HOME をサポートするため、ソケットパスにホスト名の切り詰め
ハッシュを含める。ssh-agent はデフォルトで同じホスト名のソケットだけ
を掃除する。
ssh-agent(1) gains some new flags: -U suppresses the automatic
cleanup of stale sockets when it starts. -u forces a cleanup
without keeping a running agent, -uu forces a cleanup that ignores
the hostname. -T makes ssh-agent put the socket back in /tmp.
ssh-agent(1) に新しいフラグを追加する:
-U は起動時の古いソケット自動掃除を抑制。
-u は実行中のエージェントを残さず掃除だけ実行。
-uu はホスト名を無視して掃除。
-T はソケットを再び /tmp に置く。
Changes since OpenSSH 10.0
==========================
OpenSSH 10.0 からの変更点
New features
------------
新機能
* ssh(1), sshd(8): add SIGINFO handlers to log active channel and
session information.
* ssh(1), sshd(8): アクティブなチャネルとセッション情報をログに記録する
SIGINFO ハンドラを追加する。
* sshd(8): when refusing a certificate for user authentication, log
enough information to identify the certificate in addition to the
reason why it was being denied. Makes debugging certificate
authorisation problems a bit easier.
* sshd(8): ユーザー認証で証明書を拒否する際、なぜ拒否したかの理由に加えて
証明書を特定できる十分な情報をログに記録する。証明書認可のデバッグが
少し容易になる。
* ssh(1), ssh-agent(1): support ed25519 keys hosted on PKCS#11
tokens.
* ssh(1), ssh-agent(1): PKCS#11 トークン上の ed25519 鍵をサポートする。
* ssh(1): add a ssh_config(5) RefuseConnection option that, when
encountered while processing an active section in a
configuration terminates ssh(1) with an error message that
contains the argument to the option.
* ssh(1): ssh_config(5) に RefuseConnection 設定項目を追加する。
アクティブなセクションの処理中にこの設定項目が検出された場合、
設定項目の引数を含むエラーメッセージ を出力して ssh(1) を終了する。
This may be useful for expressing reminders or warnings in config
files, for example:
これは設定ファイル内で注意喚起や警告を示すのに役立つ。例:
Match host foo
RefuseConnection "foo is deprecated, use splork instead"
* sshd(8): make the X11 display number check relative to
X11DisplayOffset. This will allows people to use X11DisplayOffset
to configure much higher port ranges if they really want, while
not changing the default behaviour.
* sshd(8): X11 ディスプレイ番号のチェックを X11DisplayOffset に相対化する。
これにより、本当にユーザーが必要としている場合に
X11DisplayOffset を使って非常に広いポート範囲を設定できる
ようになるが、デフォルトの挙動は変更していない。
* unit tests: the unit test framework now includes some basic
benchmarking capabilities. Run with "make UNITTEST_BENCHMARK=yes"
on OpenBSD or "make unit-bench" on Portable OpenSSH.
* ユニットテスト: フレームワークに簡易ベンチマーク機能を追加する。
OpenBSD では "make UNITTEST_BENCHMARK=yes"、Portable OpenSSH では
"make unit-bench" で実行可能。
Bugfixes
--------
バグ修正
* sshd(8): fix mistracking of MaxStartups process exits in some
situations. At worst, this could cause all MaxStartups slots to
fill and sshd to refuse new connections.
* sshd(8): 一部状況で MaxStartups プロセス終了を誤って追跡する不具合を修正する。
最悪の場合、すべての MaxStartups スロットが埋まり新規接続を拒否する。
* ssh(1): fix delay on X client startup when ObscureKeystrokeTiming
is enabled. bz#3820
* ssh(1): ObscureKeystrokeTiming 有効時に X クライアント起動が遅れる不具合を
修正する。bz#3820
* sshd(8): increase the maximum size of the supported configuration
from 256KB to 4MB, which ought to be enough for anybody. Fail
early and visibly when this limit is breached. bz3808
* sshd(8): サポートする設定ファイルサイズの上限を 256KB から
誰にとっても十分な 4MB に拡張する。
この制限を超過した場合は即座にかつ明確に失敗する。bz3808
* sftp(1): during sftp uploads, avoid a condition where a failed
write could be ignored if a subsequent write succeeded. This is
unlikely but technically possible because sftp servers are
allowed to reorder requests.
* sftp(1): アップロード時、失敗した書き込みがその後の成功した書き込みで
無視される可能性がある不具合を修正。sftp サーバーは要求の順序を
入れ替えることが許されているため、技術的に起こりうる。
* sftp(1): avoid a fatal() when sftp tab-completes filenames that
share common utf-8 characters that don't encode to a complete
codepoint.
* sftp(1): 完全なコードポイントにエンコードされない共通の UTF-8 文字を
共有するファイル名を sftp がタブ補完する際に、fatal() を回避する。
* sshd(8): avoid a race condition when the sshd-auth process exits
tha could cause a spurious error message to be logged.
* sshd(8): sshd-auth プロセス終了時の競合状態を回避する。
誤ったエラーメッセージが記録されるのを防止する。
* sshd(8): log at level INFO when PerSourcePenalties actually
blocks access to a source address range. Previously this was
logged at level VERBOSE, which hid enforcement actions under
default config settings.
* sshd(8): PerSourcePenalties が実際にアドレス範囲をブロックした際、
INFO レベルでログ出力する。以前は VERBOSE で出力され、
デフォルト設定ではブロックされたことが見えなかった。
* sshd(8): GssStrictAcceptor was missing from sshd -T output; fix
* sshd(8): sshd -T の出力に GssStrictAcceptor が欠落していた不具合を修正する。
* sshd(8): Make the MaxStartups and PerSourceNetBlockSize options
first-match-wins as advertised. bz3859
* sshd(8): MaxStartups および PerSourceNetBlockSize オプションを
ドキュメントどおり「最初にマッチしたものが優先」とする。bz3859
* ssh(1): fix an incorrect return value check in the local forward
cancellation path that would cause failed cancellations not to be
logged.
* ssh(1): ローカル転送キャンセルの処理で誤った戻り値チェックがあり、
失敗したキャンセルがログに残らない不具合を修正する。
* sshd(8): make "Match !final" not trigger a 2nd pass ssh_config
parsing pass (unless hostname canonicalisation or a separate
"Match final" does). bz3843
* sshd(8): "Match !final" が 2回目の ssh_config 解析を起動しないよう修正する
(ただしホスト名正規化や "Match final" がある場合を除く)。bz3843
* ssh(1): better debug diagnostics when loading keys. Will now list
key fingerprint and algorithm (not just algorithm number) as well
as making it explicit which keys didn't load.
* ssh(1): 鍵読み込み時のデバッグ情報を改善する。アルゴリズム番号だけでなく
フィンガープリントとアルゴリズムを出力し、読み込めなかった鍵を明示する。
* All: fix a number of memory leaks found by LeakSanitizer,
Coverity and manual inspection.
* All: LeakSanitizer、Coverity、手動検査で見つかった多数のメモリリークを修正する。
* sshd(8): : Output the current name for PermitRootLogin's
"prohibit-password" in sshd -T instead of its deprecated alias
"without-password". bz#3788
* sshd(8): sshd -T で PermitRootLogin の 現在の名称である
"prohibit-password" を出力する。非推奨の "without-password" は使わない。bz#3788
* ssh(1): make writing known_hosts lines more atomic by writing
the entire line in one operation and using unbuffered stdio.
* ssh(1): known_hosts の行を書き込む際、行全体を一度に unbuffered stdio
で書き込むことでよりアトミックに書き込む。
Usually writes to this file are serialised on the "Are you sure you
want to continue connecting?" prompt, but if host key checking is
disabled and connections were being made with high concurrency
then interleaved writes might have been possible.
通常、このファイルへの書き込みは「接続を続けますか?」プロンプトで直列化
されるが、ホスト鍵チェックが無効で高並列に接続すると書き込みが
混ざる可能性があった。
Portability
-----------
移植性
* sshd(8): check the username didn't change during the PAM
transactions.
* sshd(8): PAM トランザクション中にユーザー名が変更されていないか確認する。
PAM modules can change the user during their execution, but
this is not supported by sshd(8). If such a case was incorrectly
configured by the system administrator, then sshd(8) could end up
using a different username to the one authorised by PAM.
PAMモジュールは実行中にユーザーを変更できるが、 sshd(8)ではこの機能はサポートしていない。
システム管理者が誤ってこのような設定を行った場合、sshd(8)は
PAMによって認証されたユーザー名とは異なるユーザー名を使用する可能性がある。
* sshd(8): don't log audit messages with UNKNOWN hostname to avoid
slow DNS lookups in the audit subsystem.
* sshd(8): 監査サブシステムで UNKNOWN なホスト名による遅い DNS ルックアップを
回避するため、そのような監査メッセージをログに記録しないようにする。
* All: when making a copy of struct passwd, ensure struct fields are
non-NULL. Android libc can return NULL pw_gecos, for example.
* All: struct passwd をコピーする際、フィールドが非 NULL であることを保証する。
例えば、Android libc は NULL な pw_gecos を返すことがある。
* All: Remove status bits from OpenSSL >=3 version check.
* All: OpenSSL >=3 のバージョンチェックからステータスビットを削除する。
* sshd(8), ssh(1): Use SSH_TUN_COMPAT_AF on FreeBSD. Otherwise tun
forwarding from other OSes fails as soon as the first IPv6 message
is sent by the other side (which is usually a Router Solicitation
ICMPv6 message which is sent as soon as the interface is up).
* sshd(8), ssh(1): FreeBSD で SSH_TUN_COMPAT_AF を使用する。
そうしないと、相手側が最初の IPv6 メッセージを送信した時点で
tun 転送が失敗する(通常はインターフェース起動直後に
送信されるルーター要請 ICMPv6 メッセージ)。
* ssh(1), ssh-agent(8): check for nlist function presence before
attenmpting to use it instead of relying on the presence of the
nlist.h header. Mac OS X, in particular has the header, but only
has the function in the 32bit libraries.
* ssh(1)、ssh-agent(8): nlist 関数の存在を確認してから使用を試みる。
nlist.h ヘッダーの存在に依存しないようにする。
特に Mac OS X ではヘッダーは存在するが、関数は 32 ビットライブラリにのみ存在する。
* All: fill in missing system header files.
* All: 不足しているシステムヘッダーファイルを補完する。
Create replacement header files inside openbsd-compat for common
headers that are missing on a given platform. Usually these are
just empty, but in some cases they'll include the equivalent file.
This avoids having to wrap those includes in '#ifdef HAVE_FOO_H'
and reduces the diff between Portable OpenSSH and OpenBSD.
特定のプラットフォームで欠落している共通ヘッダーファイルの
代替ヘッダーファイルを openbsd-compat 内に作成する。通常これらは空ファイルだが、
場合によっては同等のファイルをインクルードする。これにより、
それらのインクルードを '#ifdef HAVE_FOO_H' で囲む必要がなくなり、
Portable OpenSSH と OpenBSD 間の差分が減少する。
* sshd(8): handle futex_time64 properly in seccomp sandbox
Previously we only allowed __NR_futex, but some 32-bit systems
apparently support __NR_futex_time64. We had support for this
in the sandbox, but because of a macro error only __NR_futex was
allowlisted.
* sshd(8): seccomp サンドボックスで futex_time64 を正しく処理する。
以前は __NR_futex のみ許可していたが、一部 32 ビットシステムは
__NR_futex_time64 をサポートしているようだ。サンドボックス内では
これに対応していたが、マクロエラーのため許可リストに
__NR_futex のみが登録されていた。
* Add contrib/gnome-ssh-askpass4 for GNOME 40+ using the GCR API.
* GNOME 40+ 用に GCR API を使用する contrib/gnome-ssh-askpass4 を追加する。
* sshd(8): let ga_init() fail gracefully if getgrouplist does.
Apparently getgrouplist() can fail on OSX when passed a
non-existent group name. Other platforms seem to return a group
list consisting of the numeric gid passed to the function. bz3848
* sshd(8): getgrouplist が失敗した場合に ga_init() が適切に失敗するように修正する。
OSX では、存在しないグループ名を渡した場合に getgrouplist() が失敗する可能性がある。
他のプラットフォームでは、関数に渡された数値の gid のみで構成されるグループリストを返すようだ。bz3848
* ssh-agent(1): exit 0 from SIGTERM under systemd socket-activation,
preventing a graceful shutdown of an agent via systemd from
incorrectly marking the service as "failed".
* ssh-agent(1): systemd ソケット起動下で SIGTERM による終了コード 0 を返すことで、
systemd 経由でのエージェントの正常なシャットダウンが妨げられ、
サービスが誤って「失敗」とマークされるのを防止する。
* build: wrap some autoconf macros in AC_CACHE_CHECK.
* build: 一部 autoconf マクロを AC_CACHE_CHECK でラップする。
This allows skipping/overriding the OSSH_CHECK_CFLAG_COMPILE and
OSSH_CHECK_CFLAG_LINK macros used to discover supported compiler
or linker flags. E.g.
これにより、例えば次のようにコンパイラやリンカのフラグを見付けるのに
OSSH_CHECK_CFLAG_COMPILE や OSSH_CHECK_CFLAG_LINK マクロをスキップまたは
上書きできる。例:
$ ./configure ossh_cv_cflag__fzero_call_used_regs_used=no
[...]
checking if cc supports compile flag -fzero-call-used-regs=used and linking succeeds... (cached) no
近況: ある案件でフルタイムで稼働中です。副業的なものはいまは募集していません。
毎回ではないですが参加しています。
付録をやっています。
近況: ある案件でフルタイムで稼働中です。副業的なものはいまは募集していません。
毎回ではないですが参加しています。
6章が終わり付録に入りました。
父が亡くなりました の続きです。
相続と会社の事業承継をやっているわけですが、世の中にある「相続のすべてがわかる本」的なやつには代表者の死後の会社の事業承継については書かれていません。 父の持つ土地の上に会社がビルを持っていてその管理をしている会社で、相続から逃げない(逃げるという選択肢はおそらく日本では難しすぎるでしょう)となると承継するしかないです。 私は自分で1人会社をやっていたのでうまくやれたほうではあると思うのですが、それでも気付くのに時間のかかる手続きなどがたくさんありました。
2025/05/07 に父春山忠男が79歳で亡くなりました。 晩年の父はスノーボードのインストラクターでした。
その前後に起ったことを記録しておきます。
2025/02 中旬 父の癌が発覚しました。手術不能な状況であったようですが、 発覚後もまだ東京から新潟まで車でスノーボードに行くことができるくらいだったようです。 (このあと車で事故を起こさないでよかったです)
近況: ある案件でフルタイムで稼働中です。副業的なものはいまは募集していません。
Build Your Own Database From Scratch in Go | Build Your Own Database From Scratch in Go は途中でやめました。 Beginner’s Guide to RPC in Golang: Understanding the Basics - DEV Community や GoのModel Context Protocol (MCP)の開発フレームワークmcp-goを使ってみる をやりました。
2025/04/09, OpenSSH 10.0p1 がリリースされました.
# https://www.openssh.com/releasenotes.html#10.0p1
Potentially-incompatible changes
--------------------------------
潜在的に非互換な変更
* This release removes support for the weak DSA signature
algorithm, completing the deprecation process that began in
2015 (when DSA was disabled by default) and repeatedly warned
over the last 12 months.
このリリースでは、弱いDSA署名アルゴリズムのサポートが削除されます。
これは、2015年にデフォルトで無効化され、
過去12か月間にわたり繰り返し警告されてきた非推奨プロセスの完了を意味する。
* scp(1), sftp(1): pass "ControlMaster no" to ssh when invoked by
scp & sftp. This disables implicit session creation by these
tools when ControlMaster was set to yes/auto by configuration,
which some users found surprising. This change will not prevent
scp/sftp from using an existing multiplexing session if one had
already been created. GHPR557
scp(1), sftp(1): scp および sftp が ssh を呼び出す際に ControlMaster no を渡す。
ControlMaster が yes/auto に設定されている場合に、これらのツールが暗黙的にセッションを作成しないようになる。
この変更は、すでに作成済みの多重化セッションを scp/sftp が使用することは妨げない。GHPR557
* This release has the version number 10.0 and announces itself
as "SSH-2.0-OpenSSH_10.0". Software that naively matches
versions using patterns like "OpenSSH_1*" may be confused by
this.
このリリースのバージョン番号は 10.0 であり、
自身を "SSH-2.0-OpenSSH_10.0" として通知する。
バージョンを "OpenSSH_1*" のようなパターンで
単純に照合しているソフトウェアでは、
問題が発生するかもしれない。
* sshd(8): this release removes the code responsible for the
user authentication phase of the protocol from the per-
connection sshd-session binary to a new sshd-auth binary.
Splitting this code into a separate binary ensures that the
crucial pre-authentication attack surface has an entirely
disjoint address space from the code used for the rest of the
connection. It also yields a small runtime memory saving as the
authentication code will be unloaded after the authentication
phase completes. This change should be largely invisible to
users, though some log messages may now come from "sshd-auth"
instead of "sshd-session". Downstream distributors of OpenSSH
will need to package the sshd-auth binary.
sshd(8): このリリースでは、プロトコルのユーザー認証フェーズを処理するコードを、
接続ごとの sshd-session バイナリから、新しい sshd-auth バイナリに移動する。
このコードを別のバイナリに分離することで、重大な認証前の攻撃対象領域が
接続の残りで利用されるコードから完全に別のアドレス空間を持つことを保証する。
また、認証フェーズが完了したあとで認証コードがアンロードされるので、
ランタイムのメモリ使用量も若干削減される。
この変更はほとんどのユーザーにとっては目に見えませんが、
一部のログメッセージが "sshd-session" ではなく "sshd-auth" から出力される場合がある。
OpenSSH をパッケージ化する下流のディストリビューターは、sshd-auth バイナリを含める必要がある。
* sshd(8): this release disables finite field (a.k.a modp)
Diffie-Hellman key exchange in sshd by default. Specifically,
this removes the "diffie-hellman-group*" and
"diffie-hellman-group-exchange-*" methods from the default
KEXAlgorithms list. The client is unchanged and continues to
support these methods by default. Finite field Diffie Hellman
is slow and computationally expensive for the same security
level as Elliptic Curve DH or PQ key agreement while offering
no redeeming advantages. ECDH has been specified for the SSH
protocol for 15 years and some form of ECDH has been the default
key exchange in OpenSSH for the last 14 years.
sshd(8): このリリースでは、有限体(modp)Diffie-Hellman 鍵交換がデフォルトで無効化される。
具体的には、diffie-hellman-group* および diffie-hellman-group-exchange-*
のメソッドがデフォルトの KEXAlgorithms リストから削除される。
クライアントは変更されず、これらのメソッドをデフォルトで引き続きサポートする。
有限体 Diffie-Hellman は、同じセキュリティレベルの Elliptic Curve DH や PQ 鍵合意と比較して、
速度が遅く、計算コストが高い一方で、特に優れた利点を持たない。
ECDH は SSH プロトコルにおいて 15 年前から標準化されており、
ECDH のいくつかの形式が OpenSSH では 14 年間デフォルトの鍵交換アルゴリズムとして採用されている。
* sshd(8): this release removes the implicit fallback to compiled-
in groups for Diffie-Hellman Group Exchange KEX when the moduli
file exists but does not contain moduli within the client-
requested range. The fallback behaviour remains for the case
where the moduli file does not exist at all. This allows
administrators more explicit control over which DH groups will
be selected, but can lead to connection failures if the moduli
file is edited incorrectly. bz#2793
sshd(8): このリリースで moduli ファイルが存在するが、クライアントが要求した範囲の
moduli が含まれていない場合に、コンパイル済みのグループへフォールバックする機能が削除される。
moduli ファイルがまったく存在しない場合には、フォールバック動作が維持される。
これにより管理者は使用する Diffie-Hellman グループをより明確に制御できるが、
moduli ファイルの編集を誤ると接続エラーの原因となる場合がある。bz#2793
Changes since OpenSSH 9.9
=========================
OpenSSH 9.9 からの変更点
This release contains a minor security fix as well as a number of
feature improvements and bugfixes.
このリリースにはマイナーなセキュリティ修正と数多くの特徴の改善、
バグ修正が含まれている。
Security
========
セキュリティ
* sshd(8): fix the DisableForwarding directive, which was failing
to disable X11 forwarding and agent forwarding as documented.
X11 forwarding is disabled by default in the server and agent
forwarding is off by default in the client.
sshd(8): DisableForwarding 設定項目がドキュメント通りに
X11 転送とエージェント転送を無効にできていなかったのを修正する。
サーバーで X11 転送はデフォルトで無効で、クライアントでエージェント転送は
デフォルトで無効だ。
New features
------------
新機能
* ssh(1): the hybrid post-quantum algorithm mlkem768x25519-sha256
is now used by default for key agreement. This algorithm is
considered to be safe against attack by quantum computers,
is guaranteed to be no less strong than the popular
curve25519-sha256 algorithm, has been standardised by NIST
and is considerably faster than the previous default.
ssh(1): ポスト量子ハイブリッドアルゴリズム mlkem768x25519-sha256 が
鍵合意にデフォルトで利用される。このアルゴリズムは量子コンピュータによる
攻撃に対して安全と考えられ、curve25519-sha256 よりも強度が低くなることが保証されていて、
NIST によって標準化されており、以前のデフォルトよりも高速です。
* ssh(1): prefer AES-GCM to AES-CTR mode when selecting a cipher
for the connection. The default cipher preference list is now
Chacha20/Poly1305, AES-GCM (128/256) followed by AES-CTR
(128/192/256).
ssh(1): 接続に使用する暗号方式として、AES-CTR よりも AES-GCM を優先する。
デフォルトの暗号優先リストは Chacha20/Poly1305、AES-GCM (128/256)、
AES-CTR (128/192/256) となる。
* ssh(1): add %-token and environment variable expansion to the
ssh_config SetEnv directive.
ssh(1): ssh_config の SetEnv 設定項目で
% トークンと環境変数の展開が追加される。
* ssh(1): allow %-token and environment variable expansion in
the ssh_config User directive, with the exception of %r and %C
which would be self-referential. bz#3477
ssh(1): ssh_config の User ディレクティブで % トークンと環境変数の展開が可能になる。
ただし、自己参照となる %r および %C は除外される。bz#3477
* ssh(1), sshd(8): add "Match version" support to ssh_config and
sshd_config. Allows matching on the local version of OpenSSH,
e.g. "Match version OpenSSH_10.*".
ssh(1)、sshd(8): "Match version" のサポートが ssh_config および
sshd_config に追加される。OpenSSH のローカルなバージョンに対して条件を設定できる。
例えば "Match version OpenSSH_10.*"。
* ssh(1): add support for "Match sessiontype" to ssh_config.
Allows matching on the type of session initially requested,
either "shell" for interactive sessions, "exec" for command
execution sessions, "subsystem" for subsystem requests, such as
sftp, or "none" for transport/forwarding-only sessions.
ssh(1): "Match sessiontype" のサポートを追加する。
最初にリクエストされたセッションのタイプに対して条件を設定できる。
タイプには、インタラクティブなセッションに対する
"shell"、 コマンド実行セッションに対する "exec", sftp のようなサブシステム要求
に対する "subsystem"、トランスポート/転送のみのセッションに対する "none"
がある。
* ssh(1): add support for "Match command ..." support to
ssh_config, allowing matching on the remote command as specified
on the command-line.
ssh(1): ssh_config で "Match command ..." をサポートする。
コマンドラインで指定されたリモートコマンドに基づいて条件を設定できる。
* ssh(1): allow 'Match tagged ""' and 'Match command ""' to match
empty tag and command values respectively.
ssh(1): 'Match tagged ""' および 'Match command ""' を許可する。
それぞれ空のタグおよび空のコマンド値にマッチする。
* sshd(8): allow glob(3) patterns to be used in sshd_config
AuthorizedKeysFile and AuthorizedPrincipalsFile directives.
bz2755
sshd(8): sshd_config の AuthorizedKeysFile および AuthorizedPrincipalsFile
設定項目で glob(3) パターンの使用を許可する。bz2755
* sshd(1): support the VersionAddendum in the client, mirroring
the option of the same name in the server; bz2745
sshd(1): クライアントに VersionAddendum のサポートを追加し、
サーバーの同名のオプションと対応させる。bz2745
* ssh-agent(1): the agent will now delete all loaded keys when
signaled with SIGUSR1. This allows deletion of keys without
having access to $SSH_AUTH_SOCK.
ssh-agent(1): SIGUSR1 シグナルを受信した際に、エージェントがロードされているすべての鍵を削除する。
これにより $SSH_AUTH_SOCK へのアクセスなしに鍵を削除できる。
* Portable OpenSSH, ssh-agent(1): support systemd-style socket
activation in ssh-agent using the LISTEN_PID/LISTEN_FDS
mechanism. Activated when these environment variables are set,
the agent is started with the -d or -D option and no socket path
is set. GHPR502
移植版 OpenSSH, ssh-agent(1): ssh-agent で LISTEN_PID/LISTEN_FDS メカニズムを使用する
systemd スタイルのソケットアクティベーションをサポートする。
これらの環境変数が設定され、エージェントが -d または -D オプション付きで起動され、
ソケットパスが設定されていない場合に有効となる。GHPR502
* ssh-keygen(1): support FIDO tokens that return no attestation
data, e.g. recent WinHello. GHPR542
ssh-keygen(1): FIDO トークンが証明データを返さない場合のサポートを追加する。
例えば最近の WinHello。GHPR542
* ssh-agent(1): add a "-Owebsafe-allow=..." option to allow the
default FIDO application ID allow-list to be overridden.
ssh-agent(1): "-Owebsafe-allow=..." オプションを追加する。
デフォルトの FIDO アプリケーション ID の許可リストを上書きできる。
* Add a work-in-progress tool to verify FIDO attestation blobs
that ssh-keygen can optionally write when enrolling FIDO keys.
This tool is available under regress/misc/ssh-verify-attestation
for experimentation but is not installed by "make install".
ssh-keygen で FIDO 鍵を登録する際にオプションで書き込める FIDO 証明データの検証を可能にする
実験的なツールを追加する。このツールは regress/misc/ssh-verify-attestation にあり
実験目的で利用できるが、"make install" ではインストールされない。
* ssh-keygen(1): allow "-" as output file for moduli screening.
GHPR393
ssh-keygen(1): モジュラススクリーニングの出力ファイルとして "-" を許可する。
GHPR393
Bugfixes
--------
バグ修正
* sshd(8): remove assumption that the sshd_config and any configs
it includes can fit in a (possibly enlarged) socket buffer.
Previously it was possible to create a sufficiently large
configuration that could cause sshd to fail to accept any
connection. sshd(8) will now actively manage sending its config
to the sshd-session sub-process.
sshd(8): sshd_config およびそのインクルードされた設定ファイルが
(拡張された場合でも) ソケットバッファに収まることを前提とする動作を削除する。
以前は、shd が接続を受け付けられなくできる大きさの設定ファイルを作成
することができた。
sshd(8) は 今は sshd-session サブプロセスへの設定の送信を適切に管理する。
* ssh(1): don't start the ObscureKeystrokeTiming mitigations if
there has been traffic on a X11 forwarding channel recently.
Should fix X11 forwarding performance problems when this setting
is enabled. bz3655
ssh(1): X11 フォワーディングチャネルで最近トラフィックがあった場合、
ObscureKeystrokeTiming の緩和策を開始しないようにする。
これにより、この設定が有効な場合の X11 フォワーディングの
パフォーマンス問題を修正する。bz3655
* ssh(1): prohibit the comma character in hostnames accepted, but
allow an underscore as the first character in a hostname.
ssh(1): 許可されるホスト名にカンマを含めることを禁止する。
一方、ホスト名の先頭にアンダースコアを許可する。
* sftp(1): set high-water when resuming a "put". Prevents bogus
"server reordered acks" debug message.
sftp(1): "put" の再開時にハイウォーターを設定する。
これにより、不正な "server reordered acks" のデバッグメッセージを防ぐ。
* ssh(1), sshd(8): fix regression in openssh-9.8, which would fail
to accept "Match criteria=argument" as well as the documented
"Match criteria argument" syntax in ssh_config and sshd_config.
bz3739
ssh(1), sshd(8): openssh-9.8 のリグレッションを修正し、
ssh_config および sshd_config において "Match criteria=argument" 形式と、
ドキュメントに記載されている "Match criteria argument" 形式の両方を受け付ける。
bz3739
* sftp(1), ssh(1): fix a number possible NULL dereference bugs,
including Coverity CIDs 405019 and 477813.
sftp(1), ssh(1): NULL デリファレンスが発生する可能性のあるバグをいくつか修正する。
Coverity CIDs 405019 および 477813 を含む。
* sshd(8): fix PerSourcePenalty incorrectly using "crash" penalty
when LoginGraceTime was exceeded. bz3797
sshd(8): PerSourcePenalty が LoginGraceTime を超えた場合に誤って
"crash" ペナルティを適用する問題を修正する。bz3797
* sshd(8): fix "Match invalid-user" from incorrectly being
activated in initial configuration pass when no other predicates
were present on the match line
sshd(8): "Match invalid-user" が、他の条件がない場合に最初の設定パスで誤って適用される問題を修正する。
* sshd(8): fix debug logging of user specific delay. GHPR#552
sshd(8): ユーザー固有の遅延のデバッグログを修正する。GHPR#552
* sshd(8): improve debug logging across sub-process boundaries.
Previously some log messages were lost early in the sshd-auth and
sshd-session processes' life.
sshd(8): サブプロセス間でのデバッグログの改善する。
これにより、sshd-auth および sshd-session の初期に
いくつかのログメッセージが失われていた問題を解消した。
* ssh(1): require control-escape character sequences passed via
the '-e ^x' command-line to be exactly two characters long. Avoids
one byte out-of-bounds read if ssh is invoked as "ssh -e^ ..."
GHPR368
ssh(1): '-e ^x' のようなコマンドラインで渡されるコントロールエスケープ文字列が必ず2文字であることを要求する。
これにより、"ssh -e^ ..." のような誤った入力による1バイトのバッファオーバーリードを防ぐ。GHPR368
* ssh(1), sshd(8): prevent integer overflow in x11 port handling.
These are theoretically possible if the admin misconfigured
X11DisplayOffset or the user misconfigures their own $DISPLAY,
but don't happen in normal operation. bz#3730
ssh(1), sshd(8): x11 ポート処理における整数オーバーフローを防ぐ。
これは、管理者が X11DisplayOffset を誤設定した場合や、
ユーザーが $DISPLAY を誤設定した場合に理論的には発生する可能性があるが、
通常の運用では起こらない。bz#3730
* ssh-keygen(1): don't mess up ssh-keygen -l output when the file
contains CR characters; GHPR236 bz3385.
ssh-keygen(1): CR 文字を含むファイルで ssh-keygen -l
の出力が乱れる問題を修正する。GHPR236 bz3385
* sshd(8): add rate limits to logging of connections dropped by
PerSourcePenalties. Previously these could be noisy in logs.
sshd(8): PerSourcePenalties によって接続が拒否された際のログ出力に
レート制限を追加する。これにより、ログが過剰に出力されるのを防ぐ。
* ssh(1): fix argument of "Compression" directive in ssh -G config
dump, which regressed in openssh-9.8.
ssh(1): ssh -G の設定ダンプ時に Compression ディレクティブの引数が正しく出力されない問題を修正する。
openssh-9.8 でのリグレッション。
* sshd(8): fix a corner-case triggered by UpdateHostKeys when sshd
refuses to accept the signature returned by an agent holding host
keys during the hostkey rotation sub-protocol. This situation
could occur in situations where a PKCS#11 smartcard that lacked
support for particular signature algorithms was used to store
host keys.
sshd(8): UpdateHostKeys の際に、ホストキーのローテーション中にエージェントが返した署名を
sshd が拒否するコーナーケースを修正する。
この問題は、特定の署名アルゴリズムをサポートしない
PKCS#11 スマートカードをホストキーの保存に使用していた場合に発生する可能性があった。
* ssh-keygen(1): when using RSA keys to sign messages with
"ssh-keygen -Y", select the signature algorithm based on the
requested hash algorithm ("-Ohashalg=xxx"). This allows using
something other than the default of rsa-sha2-512, which may not
be supported on all signing backends, e.g. some smartcards only
support SHA256.
ssh-keygen(1): "ssh-keygen -Y" で RSA 鍵を使用してメッセージに署名する際、
要求されたハッシュアルゴリズム ("-Ohashalg=xxx") に基づいて適切な署名アルゴリズムを選択する。
これにより、デフォルトの rsa-sha2-512 以外のアルゴリズムが選択可能となり、
一部のスマートカードで SHA256 のみサポートされている場合でも使用できるようになる。
* ssh(1), sshd(8), ssh-keyscan(1): fix ML-KEM768x25519 KEX on
big-endian systems.
ssh(1), sshd(8), ssh-keyscan(1): ビッグエンディアンシステムにおける
ML-KEM768x25519 鍵交換 (KEX) の問題を修正する。
* Many regression and interop test improvements.
多くのリグレッションテストおよび相互運用性テストの改善う。
Portability
-----------
移植性
* All: add support for AWS-LC (AWS libcrypto). bz3784
全体: AWS-LC (AWS libcrypto) のサポートを追加する。bz3784
* sshd(8): add wtmpdb support as a Y2038 safe wtmp replacement.
sshd(8): wtmpdb のサポートを追加し、wtmp の Y2038 問題を回避できる代替機能を提供する。
* sshd(8): add support for locking sshd into memory, enabled with
the --with-linux-memlock-onfault configure flag.
sshd(8): sshd をメモリ内にロックする機能を追加する。
この機能は --with-linux-memlock-onfault 構成フラグを有効にすることで利用できる。
* Add support for building a standalone sk-libfido2 library,
enabled by --with-security-key-standalone
sk-libfido2 ライブラリを単体でビルドする機能を追加する。
この機能は --with-security-key-standalone オプションを有効にすることで利用できる。
* ssh(1), sshd(8), ssh-keyscan(1): include __builtin_popcount
replacement function. for compilers that lack it.
ssh(1), sshd(8), ssh-keyscan(1): __builtin_popcount の代替関数を追加する。
これにより、該当の組み込み関数をサポートしていないコンパイラでも利用できるようになる。
* All: Check for and replace le32toh, le64toh, htole64 separately.
It appears that at least some versions of endian.h in glibc do
not have the latter two. bz#3794
全体: le32toh, le64toh, htole64 のチェックと置換を個別に行う。
一部の glibc の endian.h に le64toh や htole64 が含まれていない場合があるため。
bz#3794
* Remove ancient RHL 6.x config in RPM spec.
RPM スペックから古い RHL 6.x の設定を削除する。