維基百科上SSH的定義如下
Secure Shell(縮寫為SSH),由IETF的網路工作小組(Network Working Group)所制定;SSH為一項建立在應用程式層和傳輸層基礎上的安全性通訊協定,為電腦上的Shell(殼層)提供安全的傳輸和使用環境。安裝ssh伺服器安裝openssh-server$sudo apt-get install openssh-server
安裝成功之後,通過以下命令來確保server已經啟動
$sudo start ssh
如果出現以下結果,則說明已經開始運行
start: Job is already running: ssh
安裝好openssh-server之後,使用server上已有的使用者名稱和密碼就可以用ssh登入到server
例如,如果server有叫lyndon的使用者,則用下面的命令就可以實現登入
$ssh lyndon@192.168.111.111
但是如果想支援多個使用者,則需要添加其它使用者
添加使用者
具體可參考添加使用者
| sudo useradd myuser |
Without a home directory |
| sudo useradd -m myuser |
With home directory |
| sudo passwd myuser |
Then set the password |
| sudo usermod -s /bin/bash myuser |
Then set the shell |
SSH keys認證登入
SSH keys allow authentication between two hosts without the need of a password. SSH key authentication uses two keys a private key and a public key.
通過定義可以看出SSH kyes認證用的是非對稱式加密技術
與對稱式加密演算法不同,非對稱式加密演算法需要兩個密鑰:公開密鑰(public key)和私人密鑰(private key)。公開密鑰與私人密鑰是一對,如果用公開金鑰組資料進行加密,只有用對應的私人密鑰才能解密;反之亦然。因為加密和機密使用的是兩個不同的密鑰,所以這種演算法叫做非對稱式加密演算法
非對稱式加密演算法實現機密資訊交換的基本過程為:
甲方產生一對密鑰並將其中的一把作為共用密鑰向其他方公開得到該共用密鑰的乙方使用該金鑰組機密資訊進行加密後再發送給甲方甲方再用自己儲存的另一把專用金鑰組加密後的資訊進行解密
甲方只能用其專用密鑰解密由其共用祕密金鑰加密後的資訊
使用ssh-keygen產生密鑰
使用DSA產生密鑰
產生的密鑰預設會存放在~/.ssh/目錄下
其中public key是~/.ssh/id_dsa.pub,private key是~/.ssh/id_dsa
向乙方發送公用密鑰$ssh-copy-id username@remotehost
發送到乙方的公開金鑰會存放在乙方的.ssh/authorized_keys這個檔案中
所以為了安全,我們需要修改許可權
$sudo chmod 600 .ssh/authorized_keys安裝git$sudo apt-get install git初始化倉庫$git init --bare ~/Public/lyndonrepo.git
git的remote倉庫已經在伺服器建立完成。
複製倉庫
回到用戶端,通過以下命令就可以clone倉庫了
$git clone username@remotehost:~/Public/lyndonrepo.git myrepo