Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过SSH传输文件_Ssh_Scp - Fatal编程技术网

通过SSH传输文件

通过SSH传输文件,ssh,scp,Ssh,Scp,我正在通过命令行进入远程服务器,并尝试使用scp命令将目录复制到本地计算机上。但是,远程服务器返回此“用法”消息: 我希望能够双向传输文件。从我读到的内容来看,我认为上面的命令可以用于下载,而scp-p[localpath][remotepath]可以用于上传 不,您仍然需要scp[from][to]无论您以何种方式复制 区别在于,您需要scp-p服务器:serverpath localpath您需要scp某个地方。您有scp./styles/,所以您说的是安全复制/styles/,而不是复制到

我正在通过命令行进入远程服务器,并尝试使用
scp
命令将目录复制到本地计算机上。但是,远程服务器返回此“用法”消息:


我希望能够双向传输文件。从我读到的内容来看,我认为上面的命令可以用于下载,而
scp-p[localpath][remotepath]
可以用于上传

不,您仍然需要
scp[from][to]
无论您以何种方式复制


区别在于,您需要
scp-p服务器:serverpath localpath

您需要
scp
某个地方。您有
scp./styles/
,所以您说的是安全复制
/styles/
,而不是复制到哪里

一般来说,如果您想下载,它会:

# download: remote -> local
scp user@remote_host:remote_file local_file 
其中,
local\u file
实际上可能是一个目录,用于放置要复制的文件。要上传,则相反:

# upload: local -> remote
scp local_file user@remote_host:remote_file
如果要复制整个目录,则需要
-r
。将
scp
视为类似于
cp
,除非您可以使用
user@remote_host:file
以及本地文件


编辑:如注释中所述,如果本地主机和远程主机上的用户名相同,则在指定远程文件时可以忽略该用户。

如果在桌面计算机上复制,请使用WinSCP;如果在Linux上,Nautilus通过“连接到服务器”选项支持SCP

scp只能将文件复制到运行sshd的机器上,因此您需要在远程机器上运行运行scp的客户端软件

如果在命令行上进行复制,请使用:

# copy from local machine to remote machine
scp localfile user@host:/path/to/whereyouwant/thefile


您需要同时指定源和目标,如果您想要复制目录,您应该查看-r选项

因此,要将/home/user/which从远程服务器递归复制到当前目录:

scp -pr user@remoteserver:whatever .

请注意,如果远程主机和本地主机上的用户相同,则可以省略用户名:scp hello.c myserver.net:~/projects/Yes,true,我将添加一个关于此的注释。我将用户包括在内,因为我给出的示例将始终有效。:)在这件事上我感到很难过。。这是正确的吗。scp C:\filename.txtserver1@server2:home请在“donload”和“upload”上添加粗体格式。“natural”(我说natural是因为我在这上面浪费了15分钟)您不应该在尝试“下载”到本地时连接到远程主机,因为如果您从远程实例执行代码,“local”将被解释为“遥远的“,如果你明白我的意思。所以不要先运行ssh,你就是那个人。我在不到10秒内部署了一个博客,而没有在服务器端进行任何额外安装!这很有效。我在cmd中使用了msysgit,因为它同时具有scp和ssh。这非常有效。我用的是scp*user@host:/path/to/where这应该是最重要的答案。感谢WinSCP的建议。比试图手动编写所有这些命令要简单得多…p的目的是什么?来自
man scp
:保留原始文件中的修改时间、访问时间和模式。要清楚的是
-p
仅包含在此处,因为OP在其原始问题中包含了标志。这与答案毫无关系
# copy from remote machine to local machine
scp user@host:/path/to/remotefile localfile
scp -pr user@remoteserver:whatever .