scp - “-d”和“-t”选项有什么作用?

cat*_*man 6 ssh command-line-interface scp

我遇到了这篇文章,建议添加以下内容.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...
Run Code Online (Sandbox Code Playgroud)

该解决方案效果很好,但我在手册中找不到有关-d-t选项的任何信息scp。经过一番搜索后,我设法找到了另一篇可以说明一些情况的帖子

scp-t通常是 scp 传输的接收端。它由另一个 scp 实例启动,该实例将向接收端发送文件。发送 scp 实例启动接收器,发送 C 行来标记文件即将到来,然后发送文件的数据。

知道这个-d选项有什么影响吗?

另外,出于好奇,有谁知道我是否/在哪里可以找到官方描述。我在源代码中找不到任何内容。

小智 6

-d标志是一个服务器标志,例如-t。在这种情况下,这意味着目标应该是一个目录(相对于常规文件)——尝试访问scp文件而不是目录将被终止。

在当前的OpenSSH源代码中,在这里-d捕获,设置标志,然后在这里检查。如果为 false,则(主机端)进程被终止targetshouldbedirectoryverifydir()

注意:我找不到官方描述,但在我链接的源中找到了它。