Linux如何通過代理連接sftp
Linux通過代理連接sftp
背景:應(yīng)用在內(nèi)網(wǎng),通過正向代理走vpn連接合作方sftp上傳文件。
通過代理連接sftp命令:
sftp -oProxyCommand='/usr/bin/nc --proxy-type http --proxy proxyIp:proxyPort %h %p' -oPort=sftpPort sftpuser@password [user@ABC-L0001 ~]$ sftp -oProxyCommand='/usr/bin/nc --proxy-type http --proxy 10.10.10.10:1080 %h %p' -oPort=2266 sftp@20.20.20.20
問題一:應(yīng)用日志報錯“proxy error: Forbidden”
應(yīng)用服務(wù)器通過代理連接合作方sftp報403,代理服務(wù)器上直接連接合作方sftp無異常。
2021-09-13 14:37:09.157 [pool-1-thread-1] INFO c.g.btp.domain.gn.service.SftpUploadAsynThread - postSftp_upload:ProxyHTTP: java.io.IOException: proxy error: Forbidden
[user@ABC-L0001 ~]$ sftp -oProxyCommand='/usr/bin/nc --proxy-type http --proxy 10.8.174.5:1080 %h %p' -oPort=2266 cdkdsftp@10.10.20.103 Ncat: Proxy returned status code 403. ssh_exchange_identification: Connection closed by remote host Couldn't read packet: Connection reset by peer [user@ABC-L0001 ~]$
初步懷疑問題出在代理,查看squid.conf發(fā)現(xiàn)沒放行sftp端口,添加規(guī)則“acl SSL_ports port 2266”,通過代理連接還是報同樣的錯,仔細查看代理規(guī)則,發(fā)現(xiàn)先“deny !Safe_ports”,再“deny CONNECT !SSL_ports”
# Deny requests to certain unsafe ports http_access deny !Safe_ports # Deny CONNECT to other than secure SSL ports http_access deny CONNECT !SSL_ports
再加一條規(guī)則“acl Safe_ports port 2266 # sftp”后,通過代理可正常連接合作方sftp。
acl SSL_ports port 443 acl SSL_ports port 2266 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 2266 # sftp
問題二:輸入密碼后報Connetction Closed
[user@ABC-L0001 ~]$ sftp -oProxyCommand='/usr/bin/nc --proxy-type http --proxy 10.8.174.5:1080 %h %p' -oPort=2266 cdkdsftp@10.10.20.103 cdkdsftp@10.10.20.103's password: Connection Closed [user@ABC-L0001 ~]$
原因:密碼過期
Linux sftp遠程連接
SFTP(SSH File Transfer Protocol)安全文件傳送協(xié)議。有著與FTP幾乎一樣的語法和功能。SFTP為SSH的其中一部分,是一種傳輸檔案至 Blogger 伺服器的安全方式。
SFTP與FTP主要區(qū)別
FTP | SFTP | |
---|---|---|
鏈接方式 | 使用TCP的21端口 | 通過SSH協(xié)議(TCP端口22) |
安全性 | 明文傳輸 | 使用加密傳輸認證信息和傳輸?shù)臄?shù)據(jù) |
效率 | 較高 | 較低 |
SFTP常用命令
登錄
- 以root用戶登錄sftp
sftp xxx.xxx.xxx.xxx
- 以xxx用戶登錄sftp
sftp xxx@xxx.xxx.xxx.xxx
- 使用-oPort選項來指定遠程端口號
sftp -oPort=60001 xxxx@xxx.xxx.xxx.xxx
- 查看當(dāng)前目錄下文件
ls
- 進入指定目錄
cd [path]
- 查看當(dāng)前目錄
pwd
- 下載文件到本地
get [remote] [local]
- 上傳文件
put [local] [remote]
- 創(chuàng)建文件夾
mkdir [remote]
- 刪除文件
rm [remote]
- 刪除文件夾
rmdir [remote]
- 退出sftp
quit / bye / exit
- 查看sftp版本
version
- 查看支持命令
help
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux 不改變目錄結(jié)構(gòu)移動 home 目錄到新分區(qū)的操作方法
這篇文章主要介紹了linux 不改變目錄結(jié)構(gòu)移動 home 目錄到新分區(qū)的操作方法,需要的朋友可以參考下2017-12-12linux中某個文件夾執(zhí)行命令完全卡死的問題及解決
這篇文章主要介紹了linux中某個文件夾執(zhí)行命令完全卡死的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06在Linux上搭建Minecraft服務(wù)器的方法步驟
在 Linux(Ubuntu 12.04)上設(shè)置 Minecraft 服務(wù)器是一個相當(dāng)簡單的任務(wù),只需通過命令行即可完成,本文通過代碼示給大家講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-11-11