远程连接Linux服务器并实现文件的上传下载

773 阅读3分钟

我看网上关于远程服务器的文件上传下载教程都非常简洁~但是大多数漏掉了一些处理上的细节,这里进行一个稍微详细一点的总结。

远程连接服务器

在本机的cmd或本地Linux系统下,使用如下ssh命令进行连接(我使用的是WSL):

ssh username@server_ip
eg. ssh zwx@123.567.890.1
password(当然这里是不显示的,别怀疑自己,大胆输入就好)

当然这个是常规情况,对于更高安全级别的系统,我们修改了其端口号,所以需要用-p指令连接端口号port,假设端口号是1001,其连接命令行如下:

ssh -p 1001 zwx@123.567.890.1

注意!-p是小写的p,而不是大写P

上传本地文件到服务器指定目录

注意是在你自己系统下的cmd或Linux进行scp操作,而不是在连接好的远程服务器中用scp 上传和下载的命令是scp,所以都应该scp开头。scp是Secure Copy Based on ssh,也就是基于ssh连接的加密拷贝传输协议。 在上传文件中,格式如下:

scp [-P 1001] local_file_path username@ip:server_path

如果服务器带非默认端口号(22),则需要在scp后加上方括号中的内容。 注意!-P是大写的P,而不是小写p 由于这种上传方式有一些限制,所以server_path尽量别用系统文件,而应该将用户目录作为上传目的地,然后再进服务器用cp命令进行拷贝 上面这个问题我给出下面这个例子说明:

scp -P 1001 D:/pictures/1.jpg zwx@123.567.890:/usr/src/tensorrtx/yolov5/samples
结果发现没有报错,但是并没有在目标目录找到文件
scp -P 1001 D:/pictures/1.jpg zwx@123.567.890:/usr/kevin
结果发现上传成功
然后在cp命令复制该文件到指定目录下即可
(小心!上面scp是在本地,而cp操作是在连接好的远程服务器上执行哦!!!)
sudo cp /usr/kevin/1.jpg /usr/src/tensorrtx/yolov5/samples

在这里插入图片描述

在这里插入图片描述

下载服务器文件到本地路径

同样,注意是在你自己系统下的cmd或Linux进行scp操作,而不是在连接好的远程服务器中用scp 同样是scp命令,但是命令中先输入目标文件,再输入本地路径。

scp [-P 1001] username@ip:server_path local_file_path

端口号是同样的道理,放在相同的位置上即可。 注意!-P是大写的P,而不是小写p

在这里插入图片描述 在这里插入图片描述

有关上传和下载

  • 不管是本地还是服务器,尽可能使用绝对路径表示目录和文件
  • 当遇到需要输入端口号时,一定注意p的大小写规则标准
  • 注意是在你自己的系统下进行scp操作,不是在连接好的远程服务器中用scp
  • 如果操作的对象部署文件,而是要给目录,则在scp后加-r