scp -i my.key “不是目录”错误 - 我可以使用什么替代方法?

MSa*_*ers 1 ssh scp

scp喜欢ssh有一个选择-i。在记录为 的 SSH 中-i identity_file,我有一个文件,可ssh user@dest -i my.key用于在没有密码的情况下登录设备。SCP 记录了相同的选项

-i identity_file选择从中读取用于公钥认证的身份(私钥)的文件。此选项 直接传递 给 ssh(1)。

(强调我的)。这个文档显然是错误的,因为scp my.file user@dest:/home/user/ -i my.key失败了

my.key:不是目录

不,它确实不是目录。显然scp不是直接将参数传递给ssh,它首先进行检查,并且检查scp可能是错误的方式(如果参数目录,则给出错误)

不管怎样,既然scp -i坏了,我可以用什么代替?SCP 版本来自 Debian 10,手册页日期为 2018 年,无--version可用选项

Ste*_*itt 18

您需要在源和目标之前指定选项:

scp -i my.key my.file user@dest:/home/user/
Run Code Online (Sandbox Code Playgroud)

概要man scp

scp [ -346ABCpqrTv ] [ -c cipher ] [ -F ssh_config ] [ -i identity_file ] [ -J destination ] [ -l limit ] [ -o ssh_option ] [ -P port ] [ -S program ] source ... target

你看到的错误是结果scp解释my.fileuser@dest:/home/user以及-i作为来源,并my.key作为目标:它检查目标是一个目录,而失败,因为它是一个文件。

  • 确实如此,只要您不指定命令即可!我可以看到这将是多么令人困惑...... (2认同)