將 SCP 或 SFTP 與我的 SSH 設定檔一起使用?

將 SCP 或 SFTP 與我的 SSH 設定檔一起使用?

我想使用 SSH 設定檔透過終端使用 SFTP 或 SCP 連接並上傳 MySQL 轉儲檔案到我的遠端伺服器。根據我找到的文檔,我應該能夠做到這一點:

sftp -F db.sql.gz [email protected] /tmp

我還在我的配置中嘗試了別名:

sftp -F db.sql.gz myalias /tmp

當我執行上述兩項操作時,我只是列印出可能的命令,-F即其中之一。

我已經可以使用本地配置中的快捷方式透過 SSH 進行連接了,所以我知道這是可行的:

ssh myalias

筆記:我使用私鑰/公鑰對進行連接,因此我不需要輸入密碼。金鑰對確實有一個與之關聯的密碼,但 OS X 鑰匙圈記住了我第一次連線時的密碼。

所以我不確定我做錯了什麼?

答案1

  1. 來自說明文字:“ ... [-F ssh_config] ...

    根據上述內容,-F需要一個參數:OpenSSH 設定檔的路徑~/.ssh/config或類似參數。但你給它的是一個 gzip 壓縮的 SQL 轉儲。

    由於 plainssh myalias已經可以工作,因此您甚至不需要-F此處的選項。只需sftp myalias連接到伺服器即可。

  2. 但是,OpenSSHsftp客戶端不支援像您嘗試的那樣上傳檔案;它只能下載文件(使用語法host:path)或以互動模式工作。對於上傳,您需要使用互動模式...

    $ sftp myalias
    sftp> cd /tmp
    sftp> put db.sql.gz
    

    ……或scp工具:

    scp db.sql.gz myalias:/tmp
    

    或者

    scp db.sql.gz [email protected]:/tmp
    

(sftp 確實有批次模式,可以使用 來從檔案中讀取命令-b,但用於單次上傳更簡單scp。)

還有其他 SFTP 用戶端 –遠端傳輸協定適合互動使用,同時捲曲可以更容易實現自動化。對於備份等,您也可以使用同步(它運行自己的協議,但仍在 SSH 內部)。

答案2

由 ForwardAgent 配置引起的問題如下,

Host dockervm
   HostName x.x.x.x
   User root
   Preferredauthentications publickey
   ForwardAgent yes

我的情況是,這是由於 ssh 配置上的“ForwardAgent”導致 scp 掛起。一旦評論出來,對我有用。

另外,您可以擁有帶有註釋的 ForwardAgent 行的文件副本,並使用 scp -F 使其工作。

相關內容