在服务器上,我们一般都有需要上传或者下载一些文件的需求。
SFTP是SSH文件传输协议(Secret File Transfer Protocol),属于SSH服务的一部分,文件传输都是通过ssh协议加密的,比较安全,而且不需要监听新的端口。
在centos上,默认是有远程登录权限的用户就可以使用sftp服务进行文件传输,可以通过配置文件 /etc/ssh/sshd_config 看到
...
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
...
SFTP并不像一个服务器程序,而更像是一个客户端程序,通过ssh服务被调用。
SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。
SFTP使用了加密/解密技术,所以传输效率比普通的FTP要低得多,但是对于平时传输一些小文件(例如代码文件等)是足够用的了。
在linux上可以通过sftp直接在终端进行操作,使用方式和ftp命令很像。
sftp user@ip
登录的方式跟ssh一样,如果没有设置免密码验证,就会提示输入密码。
查看当前目录
pwd
pwd是查看远程服务器上当前登录后的目录路径
lpwd
如果想看本地是在什么路径下,就可以用lpwd,这个目录路径会涉及到后面操作的上传或者下载到哪个目录。
4. ls和lls
ls是看sftp服务器下当前目录下的东东, lls是看linux当前目录下的东东。
同样的分远程服务器路径下和本地路径下
远程:
ls
本地:
lls
get opcai.txt
下载远程路径下的opcai.txt,到本地的当前目录
put linuxopcai.txt
上传就到远程服务器的当前路径下
远程:
mkdir linux
本地:
lmkdir linux
其他一些常用的文件操作命令,都可以支持,可以通过help查看详情
help
登录成功后,我们可以使用help查看一下支持的命令。
!command
这个是指在本地Linux上执行一个命令,执行的是本地的操作非远程服务器端的操作。
bye
exit
quit
这三个命令都支持,随便一个都可以。
使用sftp命令是可以让我们用脚本自动化完成一些工作。
如果对于桌面系统,可以直接使用GUI客户端进行操作就比较简单,比如FileZilla、winSCP等图形客户端都支持SFTP。