>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Rust

何十台ものサーバーを整理して、SSH設定の手動編集に別れを告げる方法

クラウドでVMを頻繁に起動したり、ホームサーバーを運用している人なら、~/.ssh/configファイルが徐々に乱雑になっていくことは周知の通りです。長期間前に削除されたHetznerインスタンスの古いIPアドレス、忘れられたエイリアス、ProxyJumpチェーンが蓄積していきます。Terraformを再度実行した後、クラウドコンソールを再度開き、IPを取得して、ホストを手動で追加する必要があります。

最近、purpleというオープンソースのRust製SSH TUIマネージャーを見つけました。このプロジェクトの作者は、まさに同じ面倒さに遭遇し、インフラの同期を管理する便利なターミナルインターフェースを構築することを決意しました。

purple terminal SSH client demo

内部構造と動作の仕組み

このユーティリティの主な特徴は、独自のクローズドフォーマットを発明したり、SQLiteデータベースに設定を隠したりしないことです。プログラムは直接あなたの~/.ssh/configを解析し、コメント、インデント、Include directives、カスタムパラメータを慎重に保持します。すべての変更は同じファイルに書き戻されます。

インターフェースはRatatuiライブラリの上に構築されています。デーモンやバックグラウンドサービスなしで、単一のバイナリとして高速でレスポンシブなTUIを提供します。リポジトリにはすでに7300以上のテストがあり、ソースコードはMITライセンスの下で利用可能です。

purple host list with detail panel

クラウドプロバイダーとの同期

プロバイダーのAPIトークンを提供するだけで、インスタンスのリストが自動的にconfigに取得されます。現在、AWS、GCP、Azure、Hetzner、DigitalOcean、Proxmox、Teleportを含む17のプラットフォームがサポートされています。複数のアカウントを同時に接続できます。

purple cloud provider list

サーバーをシャットダウンすると、ユーティリティはそれを古いものとしてマークするため、死んだアドレスがリストを乱雑にすることがありません。各ホストカードには、可用性ステータス、接続ルート、過去1年間のアクティビティ履歴、タグ、実行中のサービスなど、詳細なサマリーが表示されます。

素早いナビゲーションと検索

:を押すと、モダンなエディタのCmd+Kのような、コマンドパレットスタイルのクイック検索バーが開きます。検索はホスト名、ユーザー名、ProxyJumpパラメータ、タグを横断します。user:proxy:、またはtag:などのフィルターを使用して、数キーストロークでノイズをフィルタリングできます。

purple Jump bar

エージェントなしのコンテナ管理

別の便利な機能は、インフラ全体にわたるDockerおよびPodmanコンテナを備えたタブです。

purple Containers tab

このプログラムは、サードパーティのエージェントをインストールしたり、リモートサーバーでWebポートを開いたりする必要はありません。すべてのやり取りは標準のSSHコマンドを介して行われます。インターフェースから直接以下が可能です:

  • すべてのサーバーからのコンテナの統合リストの表示
  • リアルタイムでのログの読み取り
  • コンテナの再起動と停止
  • execによるコンテナへの接続
  • Docker Composeサービスの個別再起動

トンネルの監視とコマンド実行

通常、SSHトンネルはバックグラウンドで不可視プロセスとして宙に浮いています。ここでは、すべてのLocal、Remote、Dynamic SOCKS転送が明確にが表示されます:データ転送速度、チャネルアクティビティ、稼働時間、さらにはトラフィックをプッシュしている特定のローカルプロセスを確認できます。

purple tunnel detail

サーバーグループ全体にコマンドを展開する必要がある場合、スニペットセクションが便利です。起動前、ユーティリティは誤って余分なインスタンスに影響が出ないようブラスト半径を表示し、成功した実行と失敗した実行の両方の履歴を保存します。

purple snippet detail

鍵とVaultの操作

別のタブが~/.sshディレクトリからすべての鍵を収集します。ユーティリティは暗号論的強度を評価し、randomart画像を表示し、鍵が動作するサーバーをリストします。pを押すと、ssh-copy-idでの手動サイクルなしで公開鍵をサーバーに展開できます。

purple key detail

HashiCorp Vaultを使用している人向けに、短期SSH証明書のサポートがあります。インターフェースには証明書の残り時間を示すバーが表示されるため、予期せず期限切れになったアクセスに驚くことはありません。

purple Vault SSH

その他の便利な機能:SCPファイル転送用の組み込みデュアルペインファイルマネージャー、パスワードマネージャー(1Password、Bitwarden、システムのKeychain)との統合、Claude CodeやCursorなどのAIアシスタントに接続するための独自のMCPサーバー。

インストール方法

スクリプトによるクイックインストール:

curl -fsSL getpurple.sh | sh

またはパッケージマネージャー経由:

# macOS (Homebrew)
brew install erickochen/purple/purple

# Cargo
cargo install purple-ssh

# Arch Linux (AUR)
yay -S purple-bin

インストール後、purpleコマンドを実行します。どの画面からでも?を押してキーボードショートカットのヘルプを開けます。

誰が役立つのか

このプロジェクトは、シンプルなCLIコマンドとTermiusのような有料クライアントの間のギャップを見事に埋めています。クラウドVMを頻繁に使用したり домашнийラボを維持していたり、あるいはサーバーIPアドレスを手動で整理するのに厌倦しているなら、purpleは多くの時間を節約し、configをクリーンに保つのに役立ちます。

関連プロジェクト