Ubuntu

有沒有結合 SSH 和 SFTP 的客戶端?

  • August 2, 2016

我經常發現自己在我的 Ubuntu 終端sshsftp並排使用。典型的工作流程如下所示:

  1. 在不同的終端視窗上使用相同的公鑰通過 SSH 和 SFTP 登錄到某些伺服器。
  2. 使用 SSH 創建一個目錄。
  3. put使用 SFTP 將一些文件放入目錄中。
  4. chmod通過 SSH設置權限。

使用兩個終端視窗執行所有這些操作可能會有點煩人,所以我真的希望我可以讓它看起來這一切都發生在一個程序中。

我的問題是:

是否有充分的理由需要將流程sshsftp流程分開?或者對我來說繼續編寫一個結合它們的應用程序是否“安全”?

謝謝!

**更新:**似乎sftp支持許多常見的終端命令。但是,它仍然不支持任何任意終端命令,就像ssh. 所以我仍然希望看到這些問題的答案,而不是解釋為什麼不需要答案的理由。

沒有像“SSH 命令”這樣的東西。這些是shell命令。對於 SSH 終端/客戶端,shell 只是一個帶有輸入和輸出的黑盒子。客戶甚至不理解您鍵入了一些命令,只理解它們。

因此,任何滿足您要求的解決方案都必須針對特定係統和外殼進行定制,以便能夠理解您在做什麼。

如果您輸入的命令是 shell 或 SFTP 命令,理論上的客戶端當然可以有一個特定的命令或前綴來指定。類似於ftpescape-to-local-shell prefix/command !

但即便如此,您也可能難以匹配目前的工作目錄。如果沒有別的原因,因為 SFTP 可以被 chroot,而 shell 不能。請記住,SFTP 是一個獨立的系統,理論上可以使用完全不同的文件系統表示。

所以結論是,這是可行的,但它有太多的黑客攻擊和太多的系統和 shell 特定,以至於使系統具有通用性幾乎是不可行的。一個可靠的解決方案需要一些伺服器端組件(如特殊類型的外殼)。


我知道我在寫什麼,因為我已經為我的 SFTP 客戶端 WinSCP 實現了一些這樣的功能。在那裡,在 SFTP 會話中,您可以打開一個終端/控制台視窗,它會啟動一個 shell 會話並將其工作目錄更改為目前的 SFTP 工作目錄(通過發送 shellcd命令)。所以我知道這是多麼的駭人聽聞和不可靠。

引用自:https://serverfault.com/questions/792951