Linux コマンドとシェル スキル
ssh: インフラストラクチャを実行する接続
ssh は便利なものではなく、すべてのサーバー上のすべての操作が実行されるトランスポートであり、~/.ssh/config は午前 3 時の未来の自分との契約です。ホスト エイリアス、IdentityFile エントリ、ProxyJump ターゲット、およびキープアライブ設定により、記憶されたフラグ文が 1 語のコマンドに変わります。トンネル (-L、-R、-D) と ControlMaster の多重化は、「シェル」をインフラストラクチャ コマンド サーフェスに変えるものであり、どちらもメモリの作業ではなく構成ファイルの作業です。
要点
- すべてを ~/.ssh/config に配置します。User、IdentityFile、IdentitiesOnly yes、および ProxyJump を含むホスト エイリアスにより、「ssh prod-web1」が 1 つの単語になります。 1 日に 5 回同じように入力されたフラグ文は、構成エントリが欠落しています。
- キーは唯一のゲームです: ssh-keygen -t ed25519 -C 'role@team'、authorized_keys へのパブリック半分、ローテーションが実際に機能することが証明されたらサーバー上の PasswordAuthentication no です。
- ジャンプ ホストは 1 つのフラグに折りたたまれます: ssh -J bastion.corp inner-host、または Host ブロック内の ProxyJump bastion.corp。古い ProxyCommand の呪文は今でも機能しており、もはや誰の仕事でもありません。
- トンネルは目的ごとに異なります。データベースに到達するには -L 5432:db.internal:5432、厳密なネットワークを介して SOCKS シムとして -D 1080、ローカル開発ボックスを公開するには -R で、明示的に拡張しない限り、それぞれがローカルホストにバインドされます。
- ControlMaster の多重化 (ControlMaster auto、ControlPath ~/.ssh/cm-%r@%h:%p、ControlPersist 10m) は、開くたびにハンドシェイクの再実行を停止し、1 つのホストで複数のウィンドウが瞬時に動作できるようにします。
- キープアライブは、NAT およびアイドル状態のファイアウォール ドロップを通じてセッションを維持します。ServerAliveInterval 60 と ServerAliveCountMax 3 を加えたクライアント側は、ほとんどの場合、謎の「セッションが 4 分で終了しました」というレポートを打ち破ります。
- 危険なアクセスを制限します。純粋なポート転送には -N (リモート コマンドなし)、標準入力から読み取るバッチ ジョブには -n、fail2ban に加えて健全な MaxAuthTries を使用して、ブルート フォースがアカウントではなくログで停止されるようにします。
- デバッグの順序は重要です。ssh -vvv は、構成解析、認証ネゴシエーション、チャネルの失敗をこの順序で明らかにし、-G ホスト ダンプは、サーバーに触れることなく「なぜそのキーとそのユーザーを選択したのか」に答えます。
現場ノート
新しいキーが実際にauthorized_keysに入る前にPasswordAuthenticationを無効にして、自分のチームを一晩ロックアウトしたことがあります。儀式は次のとおりです。2 番目のセッションが開き、キーが機能していることが証明されており、構成内の ServerAliveInterval により、アイドル要塞 NAT ドロップがセッションの強制終了を停止します。
よくある質問
それぞれ 1 つの文で: -L、-R、-D?
-L はローカル ポートをリモート サービスに転送し、-R はリモート ポートをマシンにプッシュバックし (何を公開したかを正確に把握します)、-D は接続を通じて動的 SOCKS プロキシを開きます。
数分間アイドル状態になると、セッションが切断されます。修理?
NAT またはファイアウォールでのアイドル タイムアウトが通常の原因です。クライアントで ServerAliveInterval を設定します (そしてサーバーで TCPKeepAlive を正常に保ちます)。同じ修正が、地下要塞ホップに使用する構成に含まれています。
ssh-agent またはパスフレーズのないキー?
エージェントは常に: セッションごとに復号化されたキーを保持するため、キーはパスフレーズを保持し、自動化は非対話型のままです。信頼できる要塞上で ForwardAgent yes を指定するのは問題ありません。自分に嘘をつく前に、ssh-add -l で何がロードされているかがわかります。
トンネル仕様の再入力をやめるにはどうすればよいですか?
Host ブロック内の LocalForward 行と RemoteForward 行: 'ssh dbtunnel' がすべてを実行します。目的ごとに 1 つのエントリを使用することで、ファイルを読み取り可能な状態に保ち、監査で誰が何を転送したかを正確に確認できます。
linux コマンドとシェル スキル に対するKinetikatechの支援
シンプルな提案です:管理者がサーバーを操作するかサーバーと戦うかを決定するコマンドとスクリプトの習慣。すべての基本インストールに存在するツールを使用して、テキストとプロセスを検索、変換、転送、監視します。 Linuxサーバーセキュリティとサーバー管理サービスにお任せください。徹底的に評価され、クリーンに実装され、24時間監視されます。