AI News HubLIVE
站內改寫2 分鐘閱讀

Corv: 為AI代理(及人類)打造的SSH客户端

Corv 是一款專為AI代理設計的SSH客户端,支持結構化JSON輸出、連接複用和安全憑據管理,同時為人類用户提供交互式終端。

來源Hacker News AI作者: khalid_0002

Corv 是一款專為AI代理和人類設計的SSH客户端,旨在解決傳統SSH在代理驅動基礎設施中的不足。傳統SSH會向調用方暴露憑據,返回需要代理解析的終端文本,每次命令都需要重新認證,並依賴tmux、nohup或自定義腳本管理長時間運行的任務。Corv 通過允許代理按名稱連接、執行命令並接收結構化JSON輸出、複用已認證的連接、以及分離和恢復長時間運行的作業,徹底改變了這一模式。同時,人類用户也可以通過交互式終端UI使用完全相同的連接。

安裝Corv非常簡單。Linux/macOS用户只需運行一行curl命令,Windows用户可以使用PowerShell,同時也支持通過Go安裝。Corv還提供了更新和卸載功能,並且只在用户主動運行時才進行更新,不會在後台自動更新。

在用法方面,Corv支持交互式連接管理和命令行操作。用户可以通過corv add添加主機,指定用户、地址、密鑰甚至跳板機。添加時,密碼會被安全地存儲在本地加密保險庫中,絕不會作為命令行參數傳遞。連接後,可以執行交互式會話或非交互式命令(代理路徑)。非交互式命令支持--json標誌以輸出結構化數據,便於工具處理。對於長時間運行的命令,Corv會自動分離任務,並允許用户通過重複相同命令來繼續監控,而不會啓動第二個副本。通過CORV_WAIT環境變量可以控制等待時間。

連接複用是Corv的核心特性之一。一個本地代理進程為每台機器保持一個已認證的SSH連接,每個corv --命令作為新通道在該連接上運行,從而只需支付一次連接和認證成本。代理進程在首次使用時自動啓動,空閒15分鐘後退出,不會在服務器上安裝任何內容。需要注意的是,這是連接複用而非遠程會話持久化,每個命令運行在自己的shell中,工作目錄等狀態不會在命令間保持。

輸出處理方面,Corv針對程序化消費者對命令輸出進行了規範化:進度條等回車重繪被壓縮為最終狀態,ANSI控制序列被移除,stdout和stderr按寫入順序交錯捕獲並返回在stdout中。已完成命令返回完整輸出,僅對真正的大輸出進行截斷,而仍在運行的命令則返回簡短預覽。傳輸失敗會被分類,遠程退出碼作為進程退出碼傳播。

安全模型上,Corv完全在客户端運行,通過Go SSH庫實現SSH。目標服務器上不安裝任何東西。連接配置文件使用操作系統保護的保險庫密鑰進行加密存儲,密碼和密鑰密碼存儲在本地加密保險庫中。認證按順序嘗試:配置的身份文件、ssh-agent、默認~/.ssh密鑰,最後是密碼。跳板機(ProxyJump)跳轉的每個主機都單獨驗證主機密鑰。主機密鑰根據~/.ssh/known_hosts進行驗證,未知主機需交互式批准,更改的主機密鑰始終被拒絕。代理進程使用操作系統權限的本地IPC(Unix套接字或Windows命名管道)加上端點令牌進行深度防禦。

架構方面,Corv由多個獨立的小模塊組成,包括連接配置文件、加密保險庫、SSH傳輸、代理進程、輸出處理器、審計日誌、交互式TUI、命令行路由和文件路徑等。這樣設計使得SSH後端或輸出處理器可以在不影響其他部分的情況下進行替換。

Corv還提供了與AI編碼代理(如Claude、Codex)的集成,可直接複製集成文件夾中的指令文件供代理使用。開發方面,Corv使用Go語言,支持Linux、macOS和Windows平台。

總的來説,Corv為AI代理和人類提供了一種更安全、高效且結構化的SSH連接方式,特別適合需要頻繁執行遠程命令的自動化場景。