**提示:對于已經了解了如何建立ssh無密匙連接的童鞋,可以略過本章哦~**
## 什么是ssh
這是一款遠程連接工具,一般情況下linux服務器安裝有,windows需要自行安裝。
## 為什么需要ssh連接服務器
因為git需要我們通過ssh連接服務器來上傳代碼
## 如何連接服務器
在windows平臺我們可以通過putty等工具使用ssh命令連接我們的服務器。
在linux平臺我們直接可以打開控制臺執行
```
ssh user@your.server.com
```
`user`代表登錄linux服務器上的指定用戶,`your.server.com `代表你的服務器域名,同樣也可以是服務器的ip地址。默認情況下ssh命令通過22端口進行連接。如果無法連接,請確認你的防火墻打開了22端口。。
## ssh登錄方式
有密匙連接:默認方式,在執行`ssh user@your.server.com `后需要輸入指定用戶的密匙,方可進入系統。
無密匙連接:在本地保存公鑰,服務器保存私鑰,連接時自動驗證密匙。
<br>
<div align="center"><h3>有密匙連接<h3></div>

<br>
<div align="center"><h3>無密匙連接<h3></div>

## 無密匙連接建立
建議大家使用無密匙連接服務器,這樣即安全又方便(因為黑客猜不到你的密匙啊)。
### 在本地機器上創建ssh密匙
執行如下命令,在連按三次回車鍵。(linux系統自帶,windows需要下載安裝ssh方可使用)
```
ssh-keygen -t rsa -C "your_email@example.com"
```
執行完畢會出現如下結果,,注意劃紅線的地方,是ssh的生成目錄。進入ssh的生成目錄拷貝`id_rsa.pub`的內容(注意是有pub結尾的內容)

*****
### 將ssh密匙的一部分保存到服務器
進入你要通過無密匙登錄的用戶登入文件夾,分兩種情況
- root用戶:進入/root目錄。
- 非root用戶:進入/home/user,`user`代表用戶登入文件夾。比如我的服務器上home目錄里就有一個www目錄和git目錄,他們分別對應git用戶和www用戶。
然后用戶將內容拷貝到用戶登入文件夾的.ssh目錄下的authorized_keys文件中。(例如將內容烤入:/home/www/.ssh/authorized_keys)
如果沒有這個文件或文件夾腫么辦?
手動創建他們丫~
**最后:進入authorized_keys所在的目錄,修改authorized_keys的權限,讓他們能夠被指定用戶讀寫**
```
cd /home/www/.ssh/ # 這個目錄請視實際情況而定
sudo chown www:www authorized_keys
sudo chmod u+rw authorized_key
```
### 最后
我們就可以通過`ssh user@your.server.com `無秘鑰連接我們的服務器了,如果還不能就執行`service sshd restart`命令重啟服務器的ssh服務下。
## 重啟ssh命令
service sshd restart