上传/下载远程服务器文件

Posted 風月长情

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传/下载远程服务器文件相关的知识,希望对你有一定的参考价值。

需求说明

  有时候我们需要对我们远程服务器的文件进行上传/下载功能,或者是我们拿到国外的Chicken了需要上传我们的Trojan来进行长久控制,再或者我们需要方便的拿到我们远程服务器上某某文件/文件夹,当你们没有眉目的时候希望我的这篇文章能够帮助你们……dididi~

一、SFTP命令

1.1 释义
  SFTP(Secure File Transfer Protocol,安全文件传输协议),Linux环境下为传输文件提供的一种安全加密的网络加密协议,SFTP为SSH中的一部分,没有单独的守护进程,必须使用sshd守护进程,默认端口号22,使用SFTP是非常安全的,但是由于这种传输方式使用了加 \\ 解密技术,所以传输效率要比普通的FTP低。


1.2 特点

  • 加密安全,传输速度慢
  • 不用额外安装任何服务端程序,节省系统资源

1.3 命令
  我们就拿我们一台加州洛杉矶的服务器上的两个文件来进行命令示例用法:

  • 查看命令
  • 连接命令
      格式:sftp <username>@<remote> -o port/-oPort
  • 上传文件
      格式:put  /<localPath>/<localFilename>  /<remotePath>/<remoteFilename>

》》创建本地1.txt

》》传入到洛杉矶服务器上

  • 下载文件
      格式:get /<remotePath>/<remoteFilename> /<localPath>/<localFilename>

》》下载我们上边那两个洛杉矶服务器上的躺枪文件>
(小提示:本地接收文件目录需要提前创建好!)

  • 其他命令

pwd  显示当前目录
cd <dir>  切换目录
ls 显示远程服务器上当前目录下文件名
lls 显示本地系统上当前目录下文件名
mkdir <dir>  创建目录
lmkdir <dir> 在本地系统上创建目录
exit/quit/bye 退出sftp
其它命令详见 “man sftp”



二、RCP命令

2.1 释义
  RCP(Remote File Copy,远程文件拷贝),Linux rcp命令用于在网络主机之间复制文件,提供安全性ssh1。rcp命令的两种格式:

  • 文件到文件的拷贝。
  • 把文件或目录拷贝到另一个目录中。

2.2 命令
  格式:rcp [-rpx] [源文件] [目标文件]

-r 递归处理,将制定目录下的文件和子目录一并处理
-p 保留源文件或目录属性,包括拥有者、所属群组、权限与时间
-x 为传送的所有数据打开DES加密(安全,但影响了响应时间和CPU利用率)

2.3 示例

  • 远程服务器/Kevin目录下所有文件到本地/Kevin目录下

rcp  -oport=<rPort>  <rUser>@:/Kevin/*  /Kevin

  • 本地文件复制到远程服务器/Kevin下
    这里出现了问题因为远程主机到我本地可以本地到远程的:

报端口错误 -oPort命令像是不起作用
猜测:如果远程开放的是22端口可以
Kali系统原因
还有一种情况:使用rcp目标主机需要实现打开rcp功能并配置rcp权限(把源主机添加到可信任主机列表中,否则无法在源主机上使用rcp远程复制文件到目标主机)

配置过程:
 a. 远程系统/etc/hsots文件中应该有与之通信的远程主机项
 b. 双方用户根目录下创建.rhosts文件,并将双方的hostname加进去,在此之前应在双方的 /etc/hosts文件中加入对方的IP和hostname
 c. 把rsh服务启动起来,redhat默认是不启动的。
  方法:用执行ntsysv命令,在rsh选项前用空格键选中,确定退出。然后执行:
service xinetd restart即可。
 d. 到/etc/pam.d/目录下,把rsh文件中的auth required /lib/security/pam_securetty.so
一行用“#”注释掉即可。(只有注释掉这一行,才能用root用户登录)



三、SCP命令

3.1 释义
  SCP(Secure Copy,安全文件拷贝),用来进行远程文件拷贝的,数据传输用ssh,并且和ssh使用相同的认证方式,提供相同的安全保证。

3.2 特点

  • 简单安全,支持限速参数。
  • 不占资源,基本不影响系统正常
  • 不支持排除目录

3.3 命令

-1  强制scp命令使用协议ssh1
-2  强制scp命令使用协议ssh2
-4  强制scp命令只使用IPv4寻址
-6  强制scp命令只使用IPv6寻址
-r   递归复制整个目录。
-q  不显示传输进度条。
-P  port 注意是大写的P, port是指定数据传输用到的端口号
-B  使用批处理模式(传输过程中不询问传输口令或短语)
-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p  保留原文件的修改时间,访问时间和访问权限。
-v  详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c  cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F  ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i   identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l   limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o  ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-S  program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

3.4 示例

  • 远程服务器/Kevin目录下所有文件到本地/Kevin目录下

scp  -oport=<rPort>  -r  @:/Kevin/  /Kevin

  • 本地目录到远程服务器某目录下

scp -r <local_file> <remote_user>@<remote_host>:/

Tip:1:连接不上上么情况?
查看对方网络是否能连通。
查看对方ssh服务是否开启:
查看ssh配置文件是否禁止密码登录
》》vi /etc/ssh/sshd_config
》》将#PasswordAuthentication no的注释去掉,并且将NO修改为YES
》》/etc/init.d/sshd restart

Tips2:多次登录输入ssh正确密码还提示错误?
》》vi /etc/ssh/sshd_config
》》PermitRootLogin yes

Tips3:SCP连接报错:

编辑如下文件,删除不能连接的IP对应的信息行即可

ssh释义

  SSH(Secure Shell,安全壳),由于Telent是明码传输,容易受到“中间人”攻击,因此SSH替代Telnet和其它远程控制台管理应用程序的标准,SSH是加密的并以几种方式进行保密,SSH有很多功能,既可以替代Telnet又可以为ftp、pop、甚至ppp提供一个安全的“通道”。到目前为止SSH有两个不兼容版本  - -SSH1和SSH2。

  • SSH1 分为1.3和1.5两个版本,SSH1采用DES、3DES、Blowfish和RC4等对称加密算法保护数据安全传输,而对称加密算法的密钥是通过非对称加密算法(RSA)来交换完成的,SSH1使用循环冗余校验码(CRC)来保证数据的完整性,但是这种方法有缺陷。
  • SSH2 避免了RSA专利问题,并修补了CRC的缺陷,SSH2用数字签名算法(DSA)和DiffieHellman(DH)算法代替RSA来完成对称秘钥的交换,用消息证实代码(HMAC)来代替CRC。同时SSH2增加了AES和Twofish等对称加密算法。

不知不觉又到了周末了,希望大家周末玩的愉快,正值春季,又可以爬山看水了,最爱的项目!

以上是关于上传/下载远程服务器文件的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统上传文件与下载文件命令

python3 远程Linux服务器执行命令和上传下载文件

python3 远程Linux服务器执行命令和上传下载文件

OpenFeign 远程调用下载文件 以及上传文件

SFTP远程连接服务器上传下载文件-vs2010项目实例

Linux下不借助工具实现远程linux服务器上传下载文件