Back

ssh和sftp的使用

日常中,经常会用到ssh,以及它的好兄弟sftp,或者它的同分异构体scp,还有同素异形体sshpass等等,原理很简单,命令比较绕,所以这里梳理一下。

SSH

SSH (Secure Shell) 是一种用于远程登录和其他网络服务之间的加密协议,ssh 命令用于通过 SSH 协议连接到远程主机,实现远程登录和执行命令,它加密会话中的所有通信,确保数据传输的安全性。

默认TCP Port 22

ssh [options] [user]@[hostname] [command]

指定端口连接:

ssh -p 2222 user@hostname

SFTP

SFTP(Secure File Transfer Protocol,安全文件传输协议)是一种基于可靠数据流(data stream),提供文件存取和管理的网络传输协议,与 FTP 协议相比,SFTP 在客户端与服务器间提供了一种更为安全的文件传输方式。

SFTP 是基于 SSH 协议的,所以也是默认TCP Port 22

sftp [options] [user]@[hostname]:[remote_folder]

指定端口连接:

ssh -P 2222 user@hostname

SFTP 解释器中预置了常用的命令,但是没有自带的 Bash 来得丰富。

  • 基本指令
① ls, rm, cd, mkdir, pwd 等指令是对当前连接的远程端服务器的操作。
② lls, lrm, lcd, lmkdir, lpwd 等指令是对本地端服务器的操作 —— 在上述指令前加l(local)即可
  • put 本地路径 远程路径

本地端的文件上传到远程端的目录下

  • get 本地路径 远程路径

远程端的文件下载到本地端的目录下

如果上传/下载的是文件夹, 在put/get命令后加上-r参数即可。
  • !command

在本地端上执行command这个命令,比较方便

  • exit

退出sftp

SCP

scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

默认TCP Port 22

对目录操作在scp后面加 -r

1、从本地复制到远程

命令格式:

scp [本地文件] [user]@[hostname]:[remote_folder] 
或者 
scp [本地文件] [user]@[hostname]:[remote_file]
  • 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

2、从远程复制到本地

从远程复制到本地,只要反过来即可

scp  [user]@[hostname]:[remote_folder] [本地文件]
或者 
scp  [user]@[hostname]:[remote_file] [本地文件]
Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy
© Licensed Under CC BY-NC-SA 4.0