Ssh

使用 sftp 連接到“FTP over TLS”

  • November 6, 2019

我現在已經浪費了一個多小時,我認為這應該很簡單……

我有一個 azure 網站,允許我使用 sftp 連接和部署到它。我可以使用具有以下設置的 FileZilla 連接到它:

  • 主機:azure傳送門給的主機
  • 埠:空
  • 協議:FTP - 文件傳輸協議
  • 加密:需要基於 TLS 的隱式 FTP
  • 登錄類型:普通
  • 使用者:Azure 門戶提供的使用者名
  • 密碼:Azure 門戶提供的密碼。

不過,我不想使用 FileZilla 連接到它。我想使用命令行移動文件。我一直在嘗試使用sftpftpscp沒有成功。最後他們都失敗了:

$ sftp -v -oPort=990 user@xxxxx.ftp.azurewebsites.windows.net
OpenSSH_7.9p1, OpenSSL 1.0.2r  26 Feb 2019
debug1: Reading configuration data /home/rg/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 17: Applying options for *
debug1: Connecting to xxxxxxx.azurewebsites.windows.net [xxx.xxx.xxx.xxx] port 990.
debug1: Connection established.
debug1: identity file /home/rg/.ssh/id_rsa type 0
debug1: identity file /home/rg/.ssh/id_rsa-cert type -1
debug1: identity file /home/rg/.ssh/id_dsa type -1
debug1: identity file /home/rg/.ssh/id_dsa-cert type -1
debug1: identity file /home/rg/.ssh/id_ecdsa type -1
debug1: identity file /home/rg/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/rg/.ssh/id_ed25519 type -1
debug1: identity file /home/rg/.ssh/id_ed25519-cert type -1
debug1: identity file /home/rg/.ssh/id_xmss type -1
debug1: identity file /home/rg/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.9
ssh_exchange_identification: Connection closed by remote host
Connection closed.
Connection closed

我已經測試過使用的 OpenSSL 版本是否支持 TLS 1.2。已知主機中的主機也不具有另一個指紋。

我希望有人可以在這裡幫助我。

FTP(通過 TLS)不是 SFTP。

如果您可以通過 FileZilla 使用 FTP 進行連接,則必須使用命令行 FTP 客戶端。不是 SFTP 客戶端。儘管並非所有命令行 FTP 客戶端都支持 TLS 加密。

再一次,這是 FTP 和 SSH 之間的混淆:

  • FTPS 是基於 TLS 的 FTP(比較:HTTPS 是基於 TLS 的 HTTP)。它使用 TCP 埠 21,如果不是處於被動模式,防火牆必須允許來自外部的連接。
  • SFTP 是 SSH 的一個子系統。它使用 TCP 埠 22。

FileZilla 兩者都支持。

引用自:https://unix.stackexchange.com/questions/550327