2026リモートMacSFTPMaxAuthTriesLoginGraceTimeCI

2026 リモートMacの公開SFTP:MaxAuthTries/LoginGraceTimeでCI(GitHub Actions)を壊さずに耐スキャンする判断表

sshd が人と自動化の両方を受けると、外側の自動BANは GitHub Actions の共有NATに誤爆しやすく、きつい MaxAuthTries はマトリックス再試行を連鎖させます。スキャンとCIジッタを分離し、known_hosts固定並列SFTPProxyJumpバスチョンと同じ変更単位で扱います。運用をホスト側に寄せたい場合は SFTPMAC のホスト型リモートMacも選択肢です。

ブルートフォースRunnersshdSFTPGitHub ActionsリモートMac
2026 リモートMac SFTP sshd MaxAuthTries LoginGraceTime CI Runner

痛みの分解:セキュリティとデリバリの速度が正面衝突する

公開SFTPでは「早く落としたい」防御と「短時間並列アップロード」ビルドが衝突し、閾値未共有だとネット障害に見えがちですが実態は MaxAuthTries とFWの不整合であることが多いです。

公開鍵のみでもスキャナは握手コストを払います。CI側ホスト鍵ズレはログ上は攻撃に似ます。LoginGraceTime 過小は初回確認中の海外メンバーを切ります。マトリックスは失敗を瞬間堆積させ、Match User 未分割だと単一パイプラインが全体バジェットを占有します。

脅威モデル:スキャンとCIジッタを混ぜない

ブルートフォースは分散ユーザー名と機械間隔が目印。CIジッタは固定アカウントとDNS/バスチョン変更直後に相関。同一カウンタではジレンマのみ残ります。層分けし、ホスト鍵正を前提に MaxAuthTriesLoginGraceTime を単接続の試行上限と猶予に位置づけ。バスチョンは外向き厳・内向きやや寛で連鎖ロック回避。

測定可能な基線:比率で語る

IP別に失敗/成功を比較し分散ならスキャン、単一鍵集中なら鍵イベント。「再試行×並列÷秒」で理論ピークを紙に。LoginGraceTime はRTT P95。リリース直後急増は鍵不整合寄り。SHA256失敗はSSHと分桶。

macOSでFail2ban前提は負債になりやすい。先にパスワード閉鎖とed25519、Match 段階化、必要なら Tailscale/Headscale で面縮小。

判断表:試行上限・猶予・外側BAN・CI許可

コントロール向く場面利点リスク
MaxAuthTriesだけ上げる鍵インシデントの応急即効パスワード残存時に窓が広がる
厳しめMaxAuthTries+鍵のみ公網入口パスワード面を縮小誤鍵は早く落ちる→ワークフロー退避必須
短いLoginGraceTime半開乱用CPU節約高RTTユーザーが切れる
クラウドFWレート制限スキャン嵐sshd前で吸収閾値ミスでCIバースト誤爆
Fail2ban系安定ログのLinux自動応答共有NATの誤検知
メッシュ/私設網設計変更可露出縮小ルーティングとACLコスト

パスワード経路の残存、CIが共有NATか、バスチョンが単点か——いずれかがYesなら単一ノブに依存しないでください。

sshd設定スケッチ(例)

# sshd_config 断片(環境に合わせて調整)
# PasswordAuthentication no
# KbdInteractiveAuthentication no
# MaxAuthTries 4
# LoginGraceTime 45
# ClientAliveInterval 30
# ClientAliveCountMax 4
# Match User ci-upload
#   MaxAuthTries 6
#   ForceCommand internal-sftp -d /Volumes/artifacts
# Actions: 認証失敗後に指数バックオフのsleepを入れる

実装ステップ:役割分離から訓練まで

1) Match で人間とCIアップロードを分離。2) internal-sftp/chrootの所有者確認。3) MaxSessions を実並列に合わせ OIDC/デプロイ鍵 と同じ列車へ。4) StrictHostKeyChecking=yesUserKnownHostsFile をSecretsへ。5) 大規模ローテで自動BAN緩め、FWは二名承認。6) ステージングで誤鍵訓練、ホスト検査を切らない復旧を確認。

監査はセッションカウントとチェックサムを同票に。SIEMへ秘密は送らない。ホスト鍵二鍵併存を文書化。遅延握手・大容量SFTPを試験しkeepalive調整。再試行にジッタ、セルフホスト出口はホステッドと閾値分離。

アップグレード差分やログ統合が重いなら SFTPMAC ホスト型へ寄せ、トレードオフをサービス境界へ移すのも合理的です。

推奨読書順(内部リンクのみ)

known_hosts固定OIDCと最小権限並列SFTPバスチョン → 任意で meshトップ

FAQ、チェックリスト、ホスティングへの橋渡し

公開SFTPは MaxAuthTriesLoginGraceTime・鍵のみ・ホスト検査・セッション予算を同一runbookにし、外側限速でスキャンを吸収します。自前は観測コストが重く、SFTPMAC はAppleネイティブの受け皿になります。

一枚紙:パスワードoff、Match、役割別MaxAuthTries、LoginGraceTimeのRTT根拠、MaxSessions、known_hostsピン、BAN責任者、ホスト検査を切らない復旧。