簡介
在服務器上,我們一般都有需要上傳或者下載一些文件的需求。
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。