ssh 免密碼登陸
服務器被登陸的時候,需要用戶提供它的密碼。
ssh [email protected]
有時人們會覺得輸入密碼比較麻煩。有時服務器是不想讓人直接登陸,但是又必須允許部分人登陸進來。
這個時候,服務器提供了一個方式,需要客戶端提供一個證明他是合格的登陸者的資質。當然了,客戶端登陸的時候會把另外一些信息和這個資質進行匹配。
這基本上就是RSA非對稱加密的公鑰和私鑰。
===========================================
服務器端必須要打開sshd服務,並且
/etc/ssh/sshd_config文檔中,如下代碼不能被註釋掉:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
客戶需要通過ssh-kengen生成兩個文件,一個公鑰,帶pub,一個私鑰,不帶pub
- $ ssh-keygen -t rsa -b 2048 -f server_rsa -C "[email protected]"
-t rsa 表示使用RSA加密得法,你也可以使用dsa代替。-b 2048表示使用2048位加密,如果你對安全性要求更高,可以使用4098位加密。-f server_rsa表示要生成的文件名為server_rsa(密鑰)和server_rsa.pub(公鑰)。最後的-C "[email protected]
***以上server_rsa在windows下最好改為id_rsa,不知道為什麽
然後把這個公鑰的內容,復制到服務器上的 ~/.ssh/authorized_keys文件的末尾,成為獨立的一行。
當然了,要保證.ssh文件夾的權限為700,authorized_keys文件的權限為600。
這樣一來,客戶端就可以ssh免密碼登陸了,這個時候服務器上對應的用戶的密碼都可以刪除了(無法遠程登陸了,不是刪除用戶)。
git私有服務器也可以利用以上方式。
ssh 免密碼登陸