再談初學者關心的ssh應用方方面面

http://blog.robertelder.org/what-is-ssh/git

什麼是ssh?web

ssh是一個在計算機之間實現安全通訊的網絡協議。一般人們在談論使用ssh時,更多的是在說爲了在另一臺計算機上執行一些命令而使用ssh client來鏈接到那臺ssh服務器上。現代的計算機一般都既能夠運行ssh client也能夠跑ssh server.好比,執行如下命令:安全

ssh robert@192.168.0.123 "ls"

這條命令將試圖使用'robert'這個username去遠程登陸192.168.0.123這個機器。一旦登陸成功,它便試圖去運行命令"ls",而且隨後直接退出ssh session.爲了這個過程可以工做,你可能須要鍵入遠程機器的robert密碼,或者使用其餘的鑑權機制。服務器

若是你在後面不加"ls"的命令,你將得到一個交互的session,你能夠在遠程機器上執行無限多的命令,直到你敲"exit"退出session.網絡

在計算機之間拷貝文件session

你能夠經過‘scp’命令使用ssh協議在計算機之間拷貝文件:ssh

scp /tmp/my_file robert@192.168.0.123:/mnt/my_file #  From your computer to 192.168.0.123
scp robert@192.168.0.123:/mnt/my_file /tmp/my_file #  From 192.168.0.123 to your computer

爲其餘服務提供隧道服務tunneling加密

這其實是ssh真正欠打的地方。你可使用ssh經由ssh連接來爲上層應用提供安全的數據傳輸隧道。好比,你能夠在你本身家裏搭建一個git repo做爲遠程備份用機。你可使用下面的命令來clone repo:spa

git clone my-server:~/my_git_repo.git

最後,你甚至能夠tunnel traffic on a port by port basis. 這容許你將遠程服務當成本地服務同樣來使用。好比,你能夠容許將本地的一個web server或者database server用於接收來自任何地方的connections,只要使用一個有公網ip的proxy server便可。code

爲何咱們要用ssh?

在ssh以前,有一些更老也不安全的替代方案,好比telnent, ftp.這些老的協議之因此不安全,是由於login的信息明碼傳輸,而ssh因爲密碼僅在安全通道創建後纔會傳輸出去。ssh也支持公鑰密碼加密的方式,這比傳統的基於password的認證更加安全。

ssh public and private keys

ssh能夠以passowrd鑑權方式工做,但更加現代的方式是使用public key cryptography方式,而不是password方式。這對於初學者每每容易犯暈。實際上沒有那麼複雜,只要你多作幾回,你就會以爲一切很天然。

大多數人已經習慣於傳統密碼認證方式:人們輸入用戶名和密碼而且發往服務器鑑權。server而後檢查password是否匹配以便決定是否容許你訪問。而public key cryptography鑑權機制則有些不一樣,

相關文章
相關標籤/搜索