2026 運用SSH CASFTPローテーション

2026 SSH 証明書認証局と SFTP 専用アカウント:リモート Mac ハブでの鍵ローテーション

複数チームと CI がリモート Macまたは Linux の SFTP 入口を共有すると、authorized_keys は放置された公開鍵の墓場になりがちです。痛みの中心は暗号ではなくガバナンスです。本稿は三つの失敗パターン、静的鍵とSSH ユーザー証明書、意思決定表、TrustedUserCAKeysPrincipal の手順、数値基準を示し、chroot SFTP同時セッション原子リリースと接続します。末尾でSFTPMAC ホスト型 Mac とも対比します。

SSH CASFTPユーザー証明書ローテーションリモート Mac監査
SSH 証明書認証局と SFTP リモート Mac のセキュリティ監査

三つの痛み:ログインは通るのに監査が破綻する理由

第一、ライフサイクルのずれです。外注終了後も鍵が authorized_keys に残り、CI は長寿命鍵のまま改名します。ログは共有 Unix アカウントの成功だけで、リモート Mac でデザイン転送まで混ざると説明がさらに難しくなります。

第二、コメントは身元データベースになりません。from= 等は強力ですが数百行はレビュー不能に近く、IdP やチケットへ結べないと運用は先送りされます。

第三、ディレクトリだけでは説明が足りません。chroot でも Unix 名は一つに束ねられがちです。Principal と専用アカウントでパイプライン単位の説明責任を戻します。

人事オフボードと鍵行の対応が切れると退出後も残りますが、短期証明書は期限で締めます。調達はローテ証跡を求め、シリアル付き JSONL が表計算より速いです。

信頼のアンカー:ユーザー CA を入れると何が変わるか

静的鍵は「行ごとの公開鍵」に信頼を置きます。証明書は TrustedUserCAKeys で少数 CA を信じ、短命の署名付き資格を提示します。ローテは行削除より期限の性質へ寄ります。証明書は誰が入ったか原子リリースどこへ書けるかです。新規は ed25519、CA 秘密鍵はオフラインか HSM、侵害時は CA の付け替えが必要です。

フィッシングは止めませんがサーバー側の古さは縮みます。管理端末方針と併用し、Mac では iCloud と SSH 素材の取り扱いに注意します。遠隔から同一リモート Macへ大容量転送するなら、キープアライブとセットです。更新は手作業ではなくパイプライン工程に載せます。

意思決定表:静的鍵、アカウント分割、証明書、追加バスション

共有リモート Mac の SFTP が詰まるときの比較です。

戦略最適なとき運用コスト監査の質
長大な authorized_keys のみ単一チーム、稀な変更、コンプラ無し短期的には低い低い
パイプラインごとの Unix アカウント+静的鍵中規模でアカウント所有者が明確中程度所有者マッピングができれば良い
SSH ユーザー証明書+ Principal多チーム、頻繁なローテ、SOC の質問中〜高シリアルログが揃えば強い
別バスションまたは VPN+ SFTP厳格なネットワーク分離高い層状ログなら強い

初日より月次の再署名・監査対応の分を見積もり、静的鍵の「見た目の簡さ」に騙されないでください。

実践パス:CA 作成、署名、sshd 配線

ステージングで検証し、Match User は SFTP のみと chroot に合わせます。reload 前に sshd -t、管理セッションは二重化。期限切れ拒否と時計ずれもテストします。

# Step 1: generate a CA keypair in an offline or jump-admin context
ssh-keygen -t ed25519 -f ./user_ca -C "[email protected]"

# Step 2: install the public key on the server
sudo install -m 644 ./user_ca.pub /etc/ssh/user_ca.pub
# In sshd_config add:
# TrustedUserCAKeys /etc/ssh/user_ca.pub
# Optional: AuthorizedPrincipalsFile /etc/ssh/auth_principals/%u

# Step 3: sign a user key for ninety days with a Principal
ssh-keygen -s ./user_ca -I build-ios-202603 -n ci-ios -V +90d -z 10001 id_ed25519.pub

# Step 4: client presents id_ed25519 and id_ed25519-cert.pub
# ssh -i id_ed25519 -o CertificateFile=id_ed25519-cert.pub deploy@remote-mac

# Step 5: combine with Match User sftpdeploy, ForceCommand internal-sftp,
# ChrootDirectory as in the multitenant guide, and separate CI accounts.

# Step 6: append issuance JSON lines with serial, principal, window, pipeline id.

CA が無い間も鍵・Unix・接頭辞を一対一にし、同時セッションを調整します。ssh-keygen 方針と Principal マッピングを文書化し、闇スクリプトを防ぎます。

数値基準:有効期間、シリアル番号、保持

人向けは三十〜九十日、自動化は二十四〜七十二時間を目安にします。発行は -z シリアル、-n Principal、区間、チケット名を JSONL に残し、九十日は最低保持します。緊急停止はアカウント無効か Principal 削除です。chroot と releases はディスク・inode を監視し、認証改善が容量問題を隠しません。

導入直後は休暇前の失念や Runbook 不足で揉みます。rsync 手順の横に再署名を置き、規制向けにはシリアルと変更票を結びます。移行後の authorized_keys 行数が減らなければ、移行は途中で止まっています。

FAQ、クロスリンク、ホスト型リモート Mac が優れるトレード

ホスト証明書は必須ですか?

必須ではありませんが、初回警告を減らし複数エンドポイントではユーザー証明書と併用しやすいです。

証明書はハードウェアセキュリティキーと共存しますか?

はい。証明書は公開鍵に署名し、秘密鍵は YubiKey や Secure Enclave に置けます。

チェックサムゲートは不要になりますか?

いいえ。身元と整合性は別です。昇格前検証は続けます。

まとめ:ユーザー証明書は信頼面を縮め Principal を構造化し、ローテを期限の問題に寄せます。SFTP のみ、chroot、同時制御、原子フォルダと組み合わせてください。

限界:CA と発行サービスは継続コストです。デモだけ作って所有者がいなければ静的鍵に戻ります。稼働と経路よりビルドに集中するなら SFTPMAC のホスト型リモート Macが隔離と安定入口を束ね、証明書はお客様側に残せます。自前は電力・冷却・リモートハンドも積み上がり、証明書だけでは消えません。

予測可能な SFTP 入口と隔離が欲しい場合は SFTPMAC のプランをご覧ください。