OpenSSH 10.1: セキュリティ、ネットワーク、構成のすべてが新しくなりました

  • WarnWeakCrypto による量子耐性アルゴリズムの警告とサポート。
  • QoS のレビュー: デフォルトでは DSCP、インタラクティブ トラフィックには EF、ToS は廃止。
  • 運用の強化: ~/.ssh/agent 内のエージェント ソケットと入力フィルター。
  • 実用的な改善: SIGINFO、RefuseConnection、PKCS#11 Ed25519 および主要なバグ修正。

OpenSSH 10.1

バージョンラベルを超えて、 OpenSSH 10.1は10シリーズから始まった道を統合する: 耐量子暗号への移行、DSCPによるQoSの近代化、そして歴史的に機密性の高い領域(エージェント、鍵、レジストリ、パラメータ解析)の強化。以下をご覧ください。 すべての新機能の徹底的なレビュー (価値が付加されるコンテキスト付き)、および、問題なく導入するための実用的なガイドラインも提供します。

以下は、 このバージョンの新機能、また、 公式ノート.

リリースのハイライトと背景

OpenSSH 10.1 (2025-10-06) の公式リリースでは、次の 3 つの軸が強調されています。 量子暗号、DSCPネットワーク、入力サニタイズに対する予防的セキュリティまた、エージェントソケットルートから、運用上の影響が大きい特定の変更も関連付けます。 新しい診断兆候.

プロジェクトの重要な注意事項: 将来のリリースではSHA-1ベースのSSHFPログは無視されますつつ ssh-keygen -r デフォルトではSHA-256のみでSSHFPフィンガープリントを生成するようになりました。 弱いハッシュへの扉を閉める DNSSEC およびホスト キー検証用。

非耐量子暗号に関する警告と新しいWarnWeakCryptoオプション

OpenSSH 10.1では、接続が鍵交換をネゴシエートする際に警告が表示されるようになりました。 量子攻撃には耐性がない目標は、「今すぐ保存して後で復号化する」というリスクに焦点を当て、機密性の高い環境での移行を加速することです。

この動作は、 警告弱い暗号 (中 ssh_config(デフォルトで有効になっています)。段階的な移行やレガシーホストの維持を行う場合は、 警告を無効にすることも可能です Matchブロックを使用します。例:

一致ホスト unsafe.example.com WarnWeakCrypto no

暗号化技術とその最新技術:PQC、ハイブリッド、SSHFP

10.0では、クライアントはデフォルトで mlkem768x25519‑sha256、ハイブリッドポスト量子アルゴリズムを組み合わせた ML-KEM (KEM NIST FIPS 203)とX25519を組み合わせたハイブリッド戦略により、たとえPQ側で暗号解読の突破口が見つかっても、 従来のECDHよりも悪い結果にはならないだろう チャネルは X25519 の強度を保持しているためです。

10.1 では、上で説明した警告に加えて、移行が強化されています。 OpenSSH は今後も SHA-1 を使用した SSHFP を無視し続けます。; ツール ssh-keygen すでにSHA-256のみでSSHFPを発行している。運用上、推奨される対応策は次の通りである。 SHA-256でSSHFPフィンガープリントを再生成して公開する あなたのホストのために。

よくある質問: 量子コンピュータがまだ SSH を解読できないのなら、なぜ今それを主張するのでしょうか? 攻撃者は今日盗聴して明日には解読できるからです。耐量子KEXの使用は、すでにそのベクトルを緩和しています。もしPQアルゴリズムの若さを心配しているなら、次のことを覚えておいてください。 ハイブリッドモダリティ クラシックなセキュリティレベルをベースとして維持します。

ネットワークの近代化: DSCP/IPQoS とトラフィックの優先順位付け

このリリースでは、QoSの徹底的な見直しが図られています。クライアントとサーバーの両方で、 インタラクティブトラフィックはデフォルトでクラスEF(Expedited Forwarding)になります。は、Wi-Fiや混雑したメディアの遅延を軽減するのに役立ちます。非対話型トラフィックは、 システムのデフォルトDSCPマーク、優先度を上げずに。

実際には、 ssh(1)とsshd(8)は動的に変更されます 存在するチャネルの種類に応じて使用されるブランド:同じ接続がシェルと sftp, 非対話型転送フェーズ 操作中は非対話型の値を使用し、適切なタイミングでEFに戻ります。これはキーによって制御されます。 IPQoS en ssh_config y sshd_config.

さらに、 古い IPv4 ToS のサポートは廃止されます IPQoSオプション(lowdelay, throughput, reliability 効果がなくなる)。まだ使用していた場合は、 DSCP命名法に移行 (例えば。、 ef, cs0, af11など)。

入力強化: ユーザー、URI、拡張

セキュリティセクションでは、10.1では、外部データを使用してコマンドラインを作成し、同時に %r/%u 展開付き ProxyCommand攻撃者はシェル式をこっそりと挿入する可能性があります。これを軽減するために、 ssh(1)はCLIパスまたは拡張ユーザーで制御文字を禁止するようになりました、またURI内のヌル文字をブロックします ssh://.

互換性に関する注意: 正当なケースを壊さないように検証ポイントが緩和されました。 設定ファイルで定義されたリテラルユーザー名 (% なし) の拡張は、ローカル構成が信頼できると見なされるため、免除されます。

ライブ信号と情報: SIGINFO と可視性

もう 1 つの実用的なデバッグのヒント: ssh(1)とsshd(8)にSIGINFOハンドラが追加されました アクティブなチャネルとセッションのステータスを記録する。本番環境では、 フロー診断、多重化、転送、X11を容易にする デバッガーをアタッチしたり、冗長性を侵襲的に増やしたりする必要はありません。

透明性の同じ線に沿って、証明書の認証が失敗した場合、 sshdは証明書を識別するのに十分な情報をログに記録するようになりました (拒否された理由も)PKIとユーザー/ホスト証明書を使用する場合、この改善は 解決時間を大幅に短縮.

ssh-agent とキー: ソケット、サニタイズ、PKCS#11

マウントが制限されている環境でのクロスアクセスを防止するため /tmp、エージェントソケット(および sshd) 知っている /tmp から ~/.ssh/agent に移動するしたがって、権限が制限されたプロセスは /tmp エージェントからキーを使用して署名する機能を誤って継承することがなくなりました。

この変更には別の派生がある。OSが古いソケットを消去する以前は、 ssh-agentは独自のクリーンアップを組み込んでいる 古いソケットから。さらに、エージェントは新しいフラグを追加します。 -U y -u 起動時の清浄度を制御するため、 -uu クリーンアップ時にホスト名を無視し、 -T 歴史的な場所を強制する /tmp 本当に必要なら。

キープレーンでは、クライアントとエージェント PKCS#11トークンでホストされるED25519がサポートされるようになりましたHSM または暗号化キーに依存すれば、強度を犠牲にすることなく柔軟性が得られます。

ssh-addと証明書:セルフクリーニングによる有効期限切れ

エージェントに証明書を追加すると、 有効期限は5分間の猶予期間に設定されますアイデアはシンプルです。トランザクションをキュー内で完了させ、 エージェント証明書を自動的に削除するフローを完全に制御する必要がある場合は、 ssh‑add -N この動作を無効にします。

RefuseConnection: クライアント側で制御された切断

クライアント自身から明確なメッセージで接続を中止したいシナリオがあります(たとえば、 運用上のリダイレクトまたは廃止通知)。OpenSSH 10.1では、 拒否接続 a ssh_config: ホットセクションの処理中に遭遇した場合、クライアントはエラーで終了し、 定義したテキストを表示します.

コード品質とライブセキュリティ

チームはコードベースのクリーンアップを続けています。10.1のリスト メモリリークを修正、書くときのアトミアの改善 known_hosts 出席率が高く、いくつかの 競合状態が解決されました 次のようなプロセスにおいて MaxStartups または X11 セッション。

暗号通貨のクリーニングに関するメモ: XMSSのサポートが削除されました (実験的なものであり、デフォルトでは使用されません)。 量子耐性署名方式 将来のバージョンでは、より成熟したものが登場する予定です。

移植性とエコシステム: PAM、FreeBSD、macOS、Android…

移植性の変更はさまざまな面に影響を及ぼします。 PAM環境での追加チェック (プロセス中にユーザーが変更されないことを保証するなど)、 FreeBSDの (tun転送と互換性)、 macOS (関数とヘッダーの堅牢な検出)と Android (非 null フィールドを持つ struct passwd)。

特定の標準ライブラリを持たないプラットフォーム向けに互換性ヘッダーも追加され、 #ifdef 分散し、最終的に精製される seccompサンドボックスポリシー Linuxでは以下のようなシステムコールをカバーするために futex_time64 32ビット版では、サポートが追加されました AWS-LC OpenSSL/LibreSSL の代替として。

QoS の実践: 実例と IPQoS の移行

以前の利用規約のエイリアス(lowdelay, throughput...)、 今では無視されるだろう DSCPを示唆するデバッグメッセージが表示されます。一般的な移行は、 IPQoS lowdelay a IPQoS ef インタラクティブセッションの場合、SFTPを頻繁に行う場合は、 マッチによるプロフィールの定義 en ssh_config/sshd_config 交通を分離するため。

エンジンは 自動的に選択して更新します 開いているチャネルに基づいてリアルタイムでマークを付けるため、ほとんどの作業は OpenSSH によってすでに完了しています。

Linux に OpenSSH 10.1 をインストールする (ソース)

ディストリビューションはバージョンを統合しますが、 公式ソースからコンパイルできるプロジェクトのミラーから tarball をダウンロードし、解凍してコンパイルします。

tar -xvf openssh-10.1.tar.gz

ディレクトリを入力し、 プレフィックスと構成ルートを構成する 必要であれば。例えば:

cd openssh-10.1 ./configure --prefix=/opt --sysconfdir=/etc/ssh

コンパイルしてインストールする 通常どおり(権限に応じて、スーパーユーザーが必要になる場合があります):

make

make install

PowerShell を使用して Windows で OpenSSH を有効にする

最新のWindows環境(Server 2019/Windows 10 1809+)では、 OpenSSH クライアントとサーバーをシステム機能としてインストールできます。容量とステータスを確認します。

Get-WindowsCapability-Online | Where-Object Name -like 'OpenSSH*'

コンポーネントをインストールする 必要に応じて:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

SSHサーバーサービスを起動して有効にする、受信ファイアウォール ルールを確認します。

Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' Get-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -ErrorAction SilentlyContinue

別の Windows または Linux ホストから接続するには、標準クライアントを使用します。 ssh dominio\usuario@servidor初回アクセス時に、 ホストの指紋を受け入れる パスワードで認証します。

運用ガイド: 診断とベストプラクティス

ユーザー/ホスト証明書のある環境の場合、 改善されたログ記録を活用する 否定の sshd CAと拡張機能をデバッグします。セッションが停止したり、多重化が疑われる場合は、 SIGINFOを起動する グローバル ログ レベルを上げずにアクティブなチャネルを一覧表示するプロセス。

エージェントに依存している場合は、ソケットが現在どこに存在するかを確認してください(~/.ssh/agent)そして、 自動クリーニングを有効にする 展開モデルによって異なります。共有ワークステーションまたはNFSワークステーションでは、必要に応じてエージェントフラグを使用してパスにホスト名ハッシュを設定することを検討してください。

最も関連性の高いバグ修正

10.1では解決されている X11のマイナーリグレッション 心拍数緩和と組み合わせると(ObscureKeystrokeTiming)、のケース MaxStartupsの不十分な会計処理 スロットを氾濫させる可能性があり、 known_hosts これで完了です 原子力作戦において 同時実行性の高いインターリーブ行を回避するため。

その他の修正により改善 キー読み込み時の診断、設定サイズ制限(256KBから4MBまで)の処理、監査出力、ローカル転送および制御シーケンスにおける特殊なコーナーケースの処理。さらに、 ssh -G y sshd -T.

推奨移行チェックリスト

この簡単なリスト これには、プロジェクト自体が提案するタスクと、変更から生じるものが含まれます。

  • クリプト: 確認してください KexAlgorithms ハイブリッドPQを許可し、SHA-256で新しいSSHFPを生成する。 ssh-keygen -r.
  • QoSの: チェック IPQoS クライアント/サーバー上で、従来の ToS を DSCP に移行し、対話型セッションに EF を活用します。
  • エージェント: スクリプトと変数を以下のソケットに適合させます ~/.ssh/agent; エージェント自体による自動クリーニングを重視します。
  • 大規模な構成: 一括構成を生成する場合、制限は 4MB まで上がります。 賢く応用する 検証を制御します。
  • パーサー: 信頼できない入力からコマンドラインを構築することは避けてください。 config ユーザー名に奇妙な大文字と小文字が含まれている場合は、リテラルを含むローカル変数を使用します。

混合艦隊を管理する人は、10.1 最も痛みが少ないところでセキュリティを強化する (パーサー、エージェント、警告)と同時に 日々の体験を向上させる (動的QoS、SIGINFO、証明書ログ)。既に10.0をご利用の場合は移行は簡単です。9.xから移行する場合は、DSCPの調整、SSHFPのSHA-256への再生成、ハイブリッドKEXの有効化などを行い、パフォーマンスを犠牲にすることなく量子脅威から保護してください。

opensshの
関連記事
OpenSSH 9.0は、scp、改善などの代わりにSFTPで提供されます