昨天同事問了我一個 FTP 的問題,但老實說我已經很少使用傳統的 FTP 當做檔案傳輸工具,目前我比較傾向使用 SSH 的 SFTP 功能,我們來看一下什麼是 SSH , SFTP
SSH (Secure SHell)
SSH 主要是用來取代 Telnet 這種以明碼為傳遞基礎的遠端登入服務,所以資料與檔案都是經過加密的方式在傳送,不用擔心被第三者竊取.
SFTP
SSH 本身就提供 ftp 的功能,它一樣還是使用 SSH 22 port 加密的傳輸,而不是使用 ftp 預設的 21 port.
如果你在安裝 Linux 時大部分的版本皆會安裝 OpenSSH,服務都是開啟的狀態.,但 Clinet 端要如何使用 SSH / SFTP 的功能呢!!!
- Linux – SFTP
LinuxClient 端只要使用指令 sftp 就可以以 ftp 的方式連到遠方的 SSH Server ,並且可以像是使用 FTP 方式來傳送檔案了.[root@benjr ~]# sftp 10.6.101.42 The authenticity of host '10.6.101.42 (10.6.101.42)' can't be established. RSA key fingerprint is 36:cb:6c:82:9e:08:c4:a3:2d:f7:f7:39:54:d0:e2:19. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.6.101.42' (RSA) to the list of known hosts. root@10.6.101.42's password:
選擇 yes 則表示 client 接受 server 的公開主機金鑰,因為我們沒有建立使用者金鑰,伺服器會提示使用者輸入正確的標準 Unix 使用者密碼.
sftp 依據目前的使用者來登入,如果使用者為 root 遠端 sftp 會自動把 root 當成遠端登入的預設帳號,如要使用不同的帳號登入請在 IP 前指定使用者 ex #sftp ben@10.6.101.42
[root@benjr ~]# sftp ben@10.6.101.42
- Linux – SCP
除了 sftp 外,SSH 還提供 #scp ,他的功能類似於 rcp 但較為安全)就能將對方的檔案複製到本地端. 這也是 Linux 的環境下最常使用的檔案分享方式,不過 scp 指令只限定使用在 Linux 的環境下. 語法如下[root@benjr ~]# scp [options] sourcefilestring destfilestring
拷貝檔案至遠端 10.6.101.123 的 /root 目錄下
[root@benjr ~]# scp source.txt 10.6.101.123:/root/ root@10.6.101.123's password: source.txt 100% 22 238.7KB/s 00:00
scp 依據目前的使用者來登入,如果使用者為 root 遠端 scp 會自動把 root 當成遠端登入的預設帳號,如要使用不同的帳號登入請在 IP 前指定使用者 ex ben@10.6.101.123
[root@benjr ~]# scp source.txt ben@10.6.101.123:/root/
- Windows – WSCP / FileZilla
至於 Windows 底下也有 3-party 的 scp 軟體如 WSCP(windows Secure copy) 或是 FileZilla,使用方式就很類似於 Windows 下的 FTP.
沒有解決問題,試試搜尋本站其他內容