SSH、SFTP、SCP总结

SSH

首先在服务器上安装ssh的服务器端,Ubuntu默认不安装

1
sudo apt-get install openssh-server

启动ssh-server。

1
/etc/init.d/ssh restart

确认ssh-server已经正常工作。

1
2
3
netstat -tlp

tcp6 0 0 *:ssh *:* LISTEN -

看到上面这一行输出说明ssh-server已经在运行了。

客户端通过ssh登录服务器。假设服务器的IP地址是47.103.17.102,登录的用户名是root。

1
ssh -l root 47.103.17.102

接下来会提示输入密码,然后就能成功登录到服务器上了。

若默认端口不是22,以27950端口为例:

1
ssh -p 27950 root@47.103.17.102

注意这里的p为小写。

SFTP

SFTP和SSH采用同一个端口,该指令可以用于文件传输。

要连接到远程 sftp 服务器,如下建立一个安全 SSH 连接并创建 SFTP 会话(-P 端口号):

1
sftp root@47.103.17.102

若端口不是默认的22端口,以27950端口为例:

1
sftp -P 27950 root@47.103.17.102

注意这里的P为小大写。

登录到远程主机后,你可以如下运行交互式的 sFTP 命令:

1
2
3
4
sftp> ls            #list directory 
sftp> pwd #print working directory on remote host
sftp> lpwd #print working directory on local host
sftp> mkdir uploads #create a new directory

如何使用 sFTP 上传文件

使用put指令即可。

1
sftp> put text.md

如何使用 sFTP 下载文件

使用get指令即可。

1
sftp> get text.md

如何使用 sFTP 上传文件夹

要将整个目录上传到远程 Linux 主机中,请使用 put 命令。但是,如果目录名称不存在于远程主机上的工作目录中,你将收到错误

因此,首先在远程主机上创建一个具有相同名称的目录,然后从本地主机上传它,-r 参数允许拷贝子目录和子文件:

1
2
3
sftp> put -r  Tecmint.com-articles # 报错
sftp> mkdir Tecmint.com-articles
sftp> put -r Tecmint.com-articles

要保留修改时间、访问时间以及被传输的文件的模式,请使用-p 标志。

1
sftp> put -pr Tecmint.com-articles

如何使用 sFTP 下载文件夹

要从远程 Linux 主机下载整个 fstools-0.0 文件夹到本机中,如下所示使用 get 命令带上 -r 标志:

1
sftp> get -r fstools-0.0

如果文件夹已经下载完成了,接着查看本机的工作目录。

退出

要退出 sFTP shell,输入:

1
2
3
sftp> bye
或者
sftp> exit

SCP

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

如何使用 scp 上传文件

命令格式:

1
2
3
4
5
6
7
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
  • 第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名
  • 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名

如何使用 scp 上传文件夹

命令格式:

1
2
3
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder

  • 第1个指定了用户名,命令执行后需要输入用户密码;
  • 第2个没有指定用户名,命令执行后需要输入用户名和密码;

如何使用 scp 下载文件

从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。

如何使用 scp 下载文件夹

从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。

------ 本文结束------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道