經過 SSH 和 SFTP 協議,咱們可以訪問其餘設備,有效並且安全的傳輸文件等等。 |
幾年前,我決定配置另一臺電腦,以便我能在工做時訪問它來傳輸我所須要的文件。要作到這一點,最基本的一步是要求你的網絡提供商(ISP)提供一個固定的地址。linux
有一個沒必要要但很重要的步驟,就是保證你的這個能夠訪問的系統是安全的。在個人這種狀況下,我計劃只在工做場所訪問它,因此我可以限定訪問的 IP 地址。即便如此,你依然要盡多的採用安全措施。一旦你創建起來這個系統,全世界的人們立刻就能嘗試訪問你的系統。這是很是使人驚奇及恐慌的。你能經過日誌文件來發現這一點。我推測有探測機器人在盡其所能的搜索那些沒有安全措施的系統。shell
在我設置好系統不久後,我以爲這種訪問沒什麼大用,爲此,我將它關閉了以便再也不爲它操心。儘管如此,只要架設了它,在家庭網絡中使用 SSH 和 SFTP 仍是有點用的。瀏覽器
固然,有一個必備條件,這個另外的電腦必須已經開機了,至於電腦是否登陸與否無所謂的。你也須要知道其 IP 地址。有兩個方法可以知道,一個是經過瀏覽器訪問你的路由器,通常狀況下你的地址格式相似於 192.168.1.254 這樣。經過一些搜索,很容易找出當前是開機的而且接在 eth0 或者 wifi 上的系統。如何識別你所要找到的電腦多是個挑戰。安全
更容易找到這個電腦的方式是,打開 shell,輸入 :網絡
ifconfig
命令會輸出一些信息,你所須要的信息在 inet 後面,看起來和 192.168.1.234 相似。當你發現這個後,回到你要訪問這臺主機的客戶端電腦,在命令行中輸入 :ssh
ssh gregp@192.168.1.234
若是要讓上面的命令可以正常執行,gregp 必須是該主機系統中正確的用戶名。你會被詢問其密碼。若是你鍵入的密碼和用戶名都是正確的,你將經過 shell 環境鏈接上了這臺電腦。我坦誠,對於 SSH 我並非常用的。我偶爾使用它,我可以運行 dnf 來更新我所常使用電腦以外的其它電腦。一般,我用 SFTP :this
sftp grego@192.168.1.234
我更須要用簡單的方法來把一個文件傳輸到另外一個電腦。相對於閃存棒和額外的設備,它更加方便,耗時更少。命令行
一旦鏈接創建成功,SFTP 有兩個基本的命令,get,從主機接收文件 ;put,向主機發送文件。在鏈接以前,我常常在客戶端移動到我想接收或者傳輸的文件夾下。在鏈接以後,你將處於一個頂層目錄裏,好比 home/gregp。一旦鏈接成功,你能夠像在客戶端同樣的使用 cd,改變你在主機上的工做路徑。你也許須要用 ls 來確認你的位置。日誌
若是你想改變你的客戶端的工做目錄。用 lcd 命令( 即 local change directory 的意思)。一樣的,用 lls 來顯示客戶端工做目錄的內容。路由
若是主機上沒有你想要的目錄名,你該怎麼辦?用 mkdir 在主機上建立一個新的目錄。或者你能夠將整個目錄的文件全拷貝到主機 :
put -r thisDir/
這將在主機上建立該目錄並複製它的所有文件和子目錄到主機上。這種傳輸是很是快速的,能達到硬件的上限。不像在互聯網傳輸同樣遇到網絡瓶頸。要查看你能在 SFTP 會話中可以使用的命令列表:
man sftp
我也可以在個人電腦上的 Windows 虛擬機內用 SFTP,這是配置一個虛擬機而不是一個雙系統的另一個優點。這讓我可以在系統的 Linux 部分移入或者移出文件。而我只須要在 Windows 中使用一個客戶端就行。
你可以使用 SSH 或 SFTP 訪問經過網線或者 WIFI 鏈接到你路由器的任何設備。這裏,我使用了一個叫作 SSHDroid 的應用,可以在被動模式下運行 SSH。換句話來講,你可以用你的電腦訪問做爲主機的 Android 設備。近來我還發現了另一個應用,Admin Hands,無論你的客戶端是平板仍是手機,都能使用 SSH 或者 SFTP 操做。這個應用對於備份和手機分享照片是極好的。