SSH
首先在服务器上安装ssh的服务器端,Ubuntu默认不安装
1 | sudo apt-get install openssh-server |
启动ssh-server。
1 | /etc/init.d/ssh restart |
确认ssh-server已经正常工作。
1 | netstat -tlp |
看到上面这一行输出说明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 | sftp> ls #list directory |
如何使用 sFTP 上传文件
使用put指令即可。
1 | sftp> put text.md |
如何使用 sFTP 下载文件
使用get指令即可。
1 | sftp> get text.md |
如何使用 sFTP 上传文件夹
要将整个目录上传到远程 Linux 主机中,请使用 put 命令。但是,如果目录名称不存在于远程主机上的工作目录中,你将收到错误。
因此,首先在远程主机上创建一个具有相同名称的目录,然后从本地主机上传它,-r
参数允许拷贝子目录和子文件:
1 | 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 | sftp> bye |
SCP
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
如何使用 scp 上传文件
命令格式:
1 | scp local_file remote_username@remote_ip:remote_folder |
- 第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名
- 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名
如何使用 scp 上传文件夹
命令格式:
1 | scp -r local_folder remote_username@remote_ip:remote_folder |
- 第1个指定了用户名,命令执行后需要输入用户密码;
- 第2个没有指定用户名,命令执行后需要输入用户名和密码;
如何使用 scp 下载文件
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。
如何使用 scp 下载文件夹
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。