我正在尝试使用 scp 命令将文件(/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip)从远程主机复制到本地机器的桌面(/Users/username/Desktop)。
为了实现这一点,我在 Mac 上运行 iTerm 并使用以下命令:
scp -r [email protected]:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip /Users/username/Desktop/
(可能还值得注意的是,当我尝试执行此命令时,我通过 ssh 登录到我的远程主机。)
当我运行该命令时,系统提示我填写密码[email protected]
(我这样做了),然后我收到以下错误消息:
/Users/用户名/Desktop:没有此文件或目录
同样,我无法使用 scp 将文件复制到我的远程主机。
非常感谢您对这个问题的任何帮助,我希望我能得到简单/透彻的解释,因为我对使用命令行和 ssh 完全陌生。
答案1
scp
不需要您通过 SSH 连接到远程计算机来进行复制(这是您当前在使用命令时遇到麻烦的地方)。
scp 本质上以推送或拉取的方式工作。您可以将文件/文件夹从本地 PC 推送到远程。此方法的命令语法如下:
scp /folderpath/tofile/file.txt user@remotehost:/folderpath/tocopyfileto/
user
这将提示您输入的密码remotehost
。
您还可以将文件/文件夹从远程 PC 拉到本地 PC。此方法的命令语法如下:
scp user@remotehost:/folderpath/tofile/file.txt /folderpath/tolocalfolder/
这也会提示您输入user
密码remotehost
。
您在使用上述命令时遇到的问题是,您使用 scp 命令的数据拉取语法从远程主机获取文件,但是在运行该命令时您也通过 SSH 连接到该远程主机。
运行此命令的正确方法是从本地机器运行它
scp -P 2222 [email protected]:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip /Users/username/Desktop/
**请注意,我从您的原始命令中删除了多余的部分-r
。这不会引发错误,只是在您的情况下没有必要。选项-r
是scp
在递归复制文件夹及其所有内容时使用的。在您的情况下,您只是复制一个文件,因此没有必要。
**我还添加了,-P 2222
因为您后续的评论表明您需要使用端口 2222 而不是标准端口 22。