前言
sftp是Secure FileTransferProtocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp与 ftp有着几乎一样的语法和功能。SFTP为 SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File TransferProtocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
登陆 sftp user@ip
登录到sftp服务器啊, 在linux的shell中执行上面的命令后, linux shell会提示用户输入密码, 我们就输入user用户对应的密码。 这样就成功建立了sftp连接。比如我的docker映射端口为23:22,用户为agree。
sftp -P 23 agree@ip
,其中P为大写,小写出错。
创建连接成功后,此时是在服务器端指定的目录下面,pwd+ls可以查看下,
help命令
建立连接成功后,可以看下sftp支持的命令
bye Quit sftp
cd path Change remote directory to 'path'
chgrp grp path Change group of file 'path' to 'grp'
chmod mode path Change permissions of file 'path' to 'mode'
chown own path Change owner of file 'path' to 'own'
df [-hi] [path] Display statistics for current directory or
filesystem containing 'path'
exit Quit sftp
get [-afPpRr] remote [local] Download file
reget [-fPpRr] remote [local] Resume download file
reput [-fPpRr] [local] remote Resume upload file
help Display this help text
lcd path Change local directory to 'path'
lls [ls-options [path]] Display local directory listing
lmkdir path Create local directory
ln [-s] oldpath newpath Link remote file (-s for symlink)
lpwd Print local working directory
ls [-1afhlnrSt] [path] Display remote directory listing
lumask umask Set local umask to 'umask'
mkdir path Create remote directory
progress Toggle display of progress meter
put [-afPpRr] local [remote] Upload file
pwd Display remote working directory
quit Quit sftp
rename oldpath newpath Rename remote file
rm path Delete remote file
rmdir path Remove remote directory
symlink oldpath newpath Symlink remote file
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
pwd和lpwd
pwd是看远端服务器的目录, 即sftp服务器默认的当前目录。 lpwd是看linux本地目录。
ls和lls
ls是看sftp服务器下当前目录下的东东, lls是看linux当前目录下的东东
put a.txt
把linux当前目录下的a.txt文件上传到sftp服务器的当前目录下。
查看本机宿主机目录下的文件及目录
执行上传命令
put /a.txt
出错:
注意: 所以,一定要搞清楚目录关系
进入容器内部看一下:
成功上传。
get b.txt
在容器内/sftp/upload下创建b.txt
在1中执行下载命令
在宿主机中查看:
!+command(命令)
这个是指在linux上执行command这个命令, 比如!ls是列举linux当前目录下的东东, !rm
a.txt是删除linux当前目录下的a.txt文件。 这个命令非常非常有用, 因为在sftp> 后输入命令, 默认值针对sftp服务器的,所以执行rm a.txt删除的是sftp服务器上的a.txt文件, 而非本地的linux上的a.txt文件。
exit和quit 退出。
总之, 连接后, 有一个help命令, 足矣足矣。