維基百科上SSH的定義如下
Secure Shell(縮寫為SSH),由IETF的網路工作小組(Network Working Group)所制定;SSH為一項建立在應用層和傳輸層基礎上的安全協定,為計算機上的Shell(殼層)提供安全的傳輸和使用環境。
$sudo apt-get install openssh-server
安裝成功之後,通過以下指令來確定server已經啟動
$sudo start ssh
如果出現以下結果,則說明已經開始運作
start: Job is already running: ssh
安裝好openssh-server之後,使用server上已有的使用者名和密碼就可以用ssh登入到server
例如,如果server有叫lyndon的使用者,則用下面的指令就可以實作登入
$ssh [email protected]
但是如果想支援多個使用者,則需要添加其它使用者
具體可參考
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 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)。公開密鑰與私有密鑰是一對,如果用公開密鑰對資料進行加密,隻有用對應的私有密鑰才能解密;反之亦然。因為加密和機密使用的是兩個不同的密鑰,是以這種算法叫做非對稱加密算法
非對稱加密算法實作機密資訊交換的基本過程為:
甲方生成一對密鑰并将其中的一把作為共用密鑰向其他方公開
得到該共用密鑰的乙方使用該密鑰對機密資訊進行加密後再發送給甲方
甲方再用自己儲存的另一把專用密鑰對加密後的資訊進行解密
甲方隻能用其專用密鑰解密由其共用密鑰加密後的資訊
使用生成密鑰
生成的密鑰預設會存放在<code>~/.ssh/</code>目錄下
其中public key是<code>~/.ssh/id_dsa.pub</code>,private key是<code>~/.ssh/id_dsa</code>
$ssh-copy-id username@remotehost
發送到乙方的公鑰會存放在乙方的<code>.ssh/authorized_keys</code>這個檔案中
是以為了安全,我們需要修改權限
$sudo chmod 600 .ssh/authorized_keys
$sudo apt-get install git
$git init --bare ~/Public/lyndonrepo.git
git的remote倉庫已經在伺服器建立完成。
回到用戶端,通過以下指令就可以clone倉庫了
$git clone username@remotehost:~/Public/lyndonrepo.git myrepo