跳到正文
DEV Community· Shuaipeng Guo·· 3 小時前AI 評分53

AI-SSH-Pro 實用操作指南:雙欄 SFTP 與可續傳傳輸佇列

Dual-pane SFTP with a resumable transfer queue: a practical walkthrough of AI-SSH-Pro

AI 導讀

AI-SSH-Pro 在既有 SSH 連線中提供雙欄 SFTP,並以可保存狀態的傳輸佇列處理中斷後續傳。傳輸中斷後,任務會標為 Interrupted,主機重新連線時可按設定自動續傳;來源檔案修改後,程式會拒絕接續舊的部分檔案並重新開始。遠端檔案搜尋透過 SFTP 目錄清單進行,不執行伺服器 shell 命令,搜尋範圍最多 5 層、400 個資料夾及 200 個結果。

正文

Most SSH clients treat file transfer as an afterthought: a separate window, a separate login, and a progress bar that vanishes the moment your Wi-Fi blinks. In AI-SSH-Pro, SFTP runs over the SSH session you already have open, in a dual-pane tab next to your terminal, with a transfer queue that remembers where it stopped.

This post walks through how that works in day-to-day use.

Dual-pane SFTP: local on the left, remote on the right, transfer queue below

Screenshots use the English UI and the built-in simulated demo host, so no real server or data appears.

The layout: two panes, one session

Open SFTP from the toolbar (or from a connected host) and you get a tab named after the host:

  • Left pane: your local machine, with a drive picker on Windows and a clickable breadcrumb path.
  • Right pane: the remote host, starting in your home directory, with a Mode column (rwxr-xr-x) next to size and modified time.
  • Middle: Upload and Download buttons for whatever is selected.
  • Bottom: the Transfers panel.

Both panes share the same toolbar ideas: up, refresh, new folder, recent folders, search, and a name filter. Columns sort folders first, then by name, time, or size. Clicking the same header flips the direction. Name sorts A to Z first, time newest first, and size largest first, which is usually what you want when you are hunting for a fresh log or a huge file.

Because it reuses the authenticated SSH connection, there is no second password prompt and no separate "site manager" to keep in sync.

Follow the terminal

The small Follow terminal checkbox is the feature I use most. With it on, when you cd /var/log/nginx in the terminal tab, the remote pane moves to the same directory. When you want to grab the file you were just looking at with tail, it is already on screen.

It is honest about failures, too. If the terminal moves somewhere the SFTP account cannot read (for example, you sudo -i into /root), the pane stays where it is and tells you why, instead of throwing an error dialog:

The terminal moved to /root, but the SFTP account cannot read it (sudo may be in use). The remote pane stays at /home/demo.

A transfer queue that survives disconnects

Every upload and download becomes a task in the Transfers panel. Tasks are grouped into Active, Paused / Interrupted, Failed, and Finished. Each one shows bytes, percent, speed, and ETA on one line.

Transfer queue with an interrupted download, Resume and Retry all

A few details make it hold up on flaky networks:

  • Partial files are explicit. Data streams into name.aisshpart first and is only renamed to the real filename when complete, so you never mistake half a tarball for a finished one.
  • Resume is the default, but it checks before it continues. The source file's modification time is recorded when the task is created. If the source changed since then, the client refuses to append to the old partial file and starts over, so you don't end up with a stitched-together file.
  • The queue is persisted. If the app or the session dies mid-transfer, unfinished tasks come back as Interrupted rather than disappearing. With Auto-resume on, they continue when that host reconnects; otherwise press Resume or Retry all.
  • Failures say what happened. You get messages like Transfer stopped: session dropped, host unreachable, or authentication error, not just "failed".
  • Name conflicts ask first. When the destination already has the file, choose Overwrite or Keep both. Keep both writes report (1).csv, then report (2).csv, and so on.

Finished tasks stay visible until you clear them, which is handy when you need to confirm later that a file really did land.

Finding files without running find

Click search on the remote pane to look for file names in subfolders:

Search files in subfolders

It walks the folder with plain SFTP directory listings, so no shell command runs on the server. That matters on locked-down accounts and audited hosts. It is deliberately bounded: up to 5 levels deep, at most 400 folders and 200 hits. It skips .git, node_modules, .cache, __pycache__, /proc, and /sys, and it doesn't follow symlinked folders. Press Enter on a hit and the pane jumps to it.

For the current folder only, the Filter by name box narrows the list as you type.

Small things that add up

  • Edit in place. Double-click a text file under 2 MB to open it in the built-in editor. If the file changed on the server after you opened it, saving warns you instead of silently overwriting someone else's change. Larger files can be opened read-only (first 2 MB) or downloaded, and binary files are offered as downloads.
  • Permissions without a shell. Change mode with octal (755, 0644) or symbolic input (u+x, go-w, a+r). It is applied with SFTP chmod, not by typing a command into your terminal.
  • Recent folders per host. The last 10 remote folders for each host, and your recent local folders, are one click away.
  • Paste a path. Paste "/var/log/app" with quotes or a Windows-style path, and the path box normalizes it before jumping.
  • New file never overwrites. Creating a file with an existing name is refused.
  • Density. On windows 1366 px wide or narrower, the panes default to a compact layout. You can force Comfort if you prefer more space.

Where the AI assistant fits

AI-SSH-Pro also has an AI ops assistant docked next to the terminal. For files, it can prepare an action card such as "open /var/log on web-01 in SFTP" or "download config.yaml to this folder". Nothing runs until you click confirm, and uploads ask a second time because they can overwrite a remote file. Every AI-initiated action lands in the audit log.

You bring your own OpenAI-compatible model (OpenAI, DeepSeek, Qwen, and others). Keys stay in your OS's secure storage, and the assistant never receives your passwords or private keys.

Try it in two minutes

  1. Grab an installer for Windows, macOS, or Linux from GitHub Releases.
  2. Open the built-in demo host and click SFTP. It is simulated and read-only, so you can browse, search, download, and watch the Transfers panel without a server.
  3. Connect a real host, turn on Follow terminal, and cd around.

More on the project site. AI-SSH-Pro is open source under MIT. Feedback and issues are very welcome.

What's the one thing your current SFTP client gets wrong on a bad connection?

來源:DEV Community · dev.to