Ssh

scp - “-d”和“-t”選項有什麼作用?

  • May 17, 2019

我遇到了這篇文章,建議添加以下內容.ssh/authorized_keys以強制執行scp命令:

no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="scp -v -r -d -t ~/CONTENT" ssh-rsa AAAAMYRSAKEY...

該解決方案效果很好,但我在手冊中找不到有關-d-t選項的任何資訊。scp經過一番搜尋後,我設法找到了另一篇能說明問題的文章:

scp-t通常是 scp 傳輸的接收端。它由另一個 scp 實例啟動,該實例將向接收端發送文件。發送 scp 實例啟動接收器,發送 C 行以標記文件即將到來,然後發送文件的數據。

-d知道該選項有什麼影響嗎?

另外,出於好奇,有人知道我是否/在哪裡可以找到官方描述。我無法在原始碼中找到任何內容。

-d標誌是一個伺服器標誌,如-t. 在這種情況下,這意味著目標應該是一個目錄(而不是一個正常文件)——嘗試到scp一個文件而不是一個目錄將被終止。

在目前的 OpenSSH 原始碼中,在這裡-d被擷取,設置標誌,然後在這裡被檢查。如果為 false,則(主機端)程序被終止targetshouldbedirectory``verifydir()

注意我找不到官方描述,但確實在我連結的原始碼中找到了它。

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