1,486 瀏覽數

WSCP – windows Secure copy

在 Linux 的環境下最常使用的檔案分享方式不是 nfs , ftp 也不是 samba 而是 scp(Secure copy),只要簡單的使用是 #scp 指令就能將對方的檔案複製到本地端.但是這僅僅限制在 Linux 的環境下,Windows 無法使用這安全又方便的遠端檔案交換,所以介紹一下在 Windows 下可以執行的 scp 程式 winscp- http://winscp.net/eng/docs/lang:cht 這軟體是免費的.
scp01
scp 主要也是透過 ssh 的方式複製檔案,SSH 主要是用來取代 Telnet 這種以明碼為傳遞基礎的遠端登入服務,他是基於加密的方式進行傳輸,但 scp 不同於 SSH 我們不登入對方的系統.所以檔案都是經過 SSH 加密的方式在傳送.所以對方的 SSH 的服務必須開啟.winscp 的安裝上也很簡單就直接跳過去了不做詳細安裝說明,

安裝完成的 WinSCP 也很清楚的可以看到要輸入對方的主機名稱(IP 或是 Hostname 皆可),所有的 SSH 皆使用 Port 22,以及對方的帳號以及密碼.如果是第一次使用 SSH 服務的會比較感到困惑是什麼叫做 "私人金鑰檔案(K) !!!" 以及檔案協定[F] SFTP / SCP.
scp04
先來說一下 SSH 的加密機制,目前 SSH 有兩種版本的連線模式.

  • SSH protocol version 1:
    首先 client 與 server 會交換公開主機金鑰(SSH 在安裝時會產生一支用 RSA 加密方式產生 768-bit 的主機金鑰).如果 client 機器以前沒見過這個公開金鑰.則會詢問是否接受這個未被信任的金鑰,情況如: client 第一次登入 SSH server.
    然後會使用這把公開主機金鑰來協調出一隻 session 金鑰(在 Client 接受這個 768-bit 的公開主機金鑰之後,Client 自己也會隨機產生一支 256-bit 的私鑰,並且以加密的方式將公開主機金鑰與私鑰整合成一支完整的 Key ,並且將這支 Key 也傳送給 server ),用來將所有後續的 session 資料都使用這支 session 金鑰作為 3DES(Triple-DES),blowfish 或 IDEA 等對稱加密(symmetric encryption)的鑰匙來加密.由於 Client 端每次的 256-bit 的 Key 是隨機取得的,所以你這次的連線與下次的連線的 Key 就不會一樣.
  • SSH protocol version 2(WinSCP 預設的方式)
    與 version 1 不同的是,在 version 2 當中將不再產生公開主機金鑰了,所以,當 Client 端連線到 Server 端時,兩者將藉由 Diffie-Hellman key(非對稱式加密的一種) 的演算方式來產生一個分享的 Key ,之後兩者將藉由類似 Blowfish(對稱式加密的一種) 的演算方式進行同步解密的動作!

每一個 sshd 都提供這兩個版本的連線,而決定這兩種模式連線的,就必需要在 client 端連線時選擇連線的模式才能確認。目前預設情況下,會自動使用 version 2 的連線模式喔!而由於我們的連線資料中,經過了這個 Public 與 Private Key 的加密、解密動作,所以在中間的傳送過程中,當然就比較安全的多

在進階選項裡面會出現關於 SSH 的設定,不過我們只是要用 SCP 的服務就不用懂這麼多了!!如果對於加解密又興趣的可以參考一下 SSH(Secure SHell) , SSH 應用 PKI

回來繼續說明 "私人金鑰檔案(K) " 這到底要不要輸入!!
scp03
只要我們在第一次登入對方系統時選擇 "是[Y]"即可!!不需要再使用私人金鑰檔案.

還有檔案協定[F] SFTP / SCP 這兩種服務不一樣嗎??
SSH 本身就提供 ftp 的功能(SFTP),它還是使用 22 port(22 port 走的是SSH 加密的傳輸,而不是使用 ftp 預設的 21 port) ,而 SCP 的功能類似於 rcp.不過這兩種方式都是透過 SSH 去連接,也因為 WinSCP 使用 Windows 介面的關係這兩種方式變的很類似了.