1. 程式人生 > >ssh 免密碼登陸

ssh 免密碼登陸

密碼 有時 刪除 內容 需要 機器 文檔 authorize 利用

服務器被登陸的時候,需要用戶提供它的密碼。

ssh [email protected]

有時人們會覺得輸入密碼比較麻煩。有時服務器是不想讓人直接登陸,但是又必須允許部分人登陸進來。

這個時候,服務器提供了一個方式,需要客戶端提供一個證明他是合格的登陸者的資質。當然了,客戶端登陸的時候會把另外一些信息和這個資質進行匹配。

這基本上就是RSA非對稱加密的公鑰和私鑰。

===========================================

服務器端必須要打開sshd服務,並且

/etc/ssh/sshd_config文檔中,如下代碼不能被註釋掉:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

客戶需要通過ssh-kengen生成兩個文件,一個公鑰,帶pub,一個私鑰,不帶pub

  1. $ 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]

/* */"是註釋,會追加在造成的Key文件尾部,通常會寫上用戶或機器的身份信息備查。之後輸入RSA Key的使用密碼並確認,ssh-keygen命令就會造成一對密鑰對。把生成的密鑰對拷貝到本機的~/.ssh/下

***以上server_rsa在windows下最好改為id_rsa,不知道為什麽

然後把這個公鑰的內容,復制到服務器上的 ~/.ssh/authorized_keys文件的末尾,成為獨立的一行。

當然了,要保證.ssh文件夾的權限為700,authorized_keys文件的權限為600。

這樣一來,客戶端就可以ssh免密碼登陸了,這個時候服務器上對應的用戶的密碼都可以刪除了(無法遠程登陸了,不是刪除用戶)。

git私有服務器也可以利用以上方式。

ssh 免密碼登陸