centos免密碼使用密鑰登錄博客分類:
linux相關(guān)用密碼登錄總是不大安全的,最大的問題就是總是要修改密碼,那么你能有多少密碼呢,用密鑰的話,隔斷時間重新生成密鑰,免去了想密碼的煩惱。
基本方法是在客戶端生成自己的私鑰和密鑰,將客戶端生成的密鑰傳到服務(wù)端的密鑰文件里,配置下服務(wù)器用密鑰登錄,就完成了。
以下以centos為服務(wù)器,客戶端為windows,用putty
1.先用密碼登錄,在用戶目錄下建立目錄.ssh,將此目錄的權(quán)限設(shè)置為700,然后在此目錄下建立一個新文件authorized_keys
[root@test1 .ssh]# chmod 600 authorized_keys ##這一部是必須的
2.配置服務(wù)器,去掉密碼登錄,使用密鑰登錄
Java代碼
vi /etc/ssh/sshd_config
Protocol 2
PasswordAuthentication no
PubkeyAuthentication yes ##使用key登錄
AuthorizedKeysFile .ssh/authorized_keys ##key的名字
3.然后就可以用客戶端的私鑰來登錄了,這樣客戶端的公鑰被添加到服務(wù)器上的哪個用戶文件里,就可以擁有哪個用戶的權(quán)限。
這樣其實很好解釋,生成了兩個文件,這兩個文件可以互為驗證。你先用密碼登錄,然后你就被驗證過了,你將客戶端的一個公鑰導(dǎo)入當前用戶,那么這個公鑰對應(yīng)的客戶端私鑰就有了這個用戶的權(quán)限(因為你已經(jīng)用密碼登錄過了)。
4.客戶端用puttygen生成密鑰
打開puttygen,點擊generate,然后開始生成密鑰,需要不斷移動鼠標,生成客戶端的私鑰和公鑰, 如公鑰保存為key_pub,私鑰保存為key_private.ppk ,把上邊文本框里的內(nèi)容復(fù)制到linux服務(wù)器的authorized_keys里面,不要直接用key_pub里面的內(nèi)容,否則可能出現(xiàn)Putty證書登陸出現(xiàn)server refused our key問題
5.上傳客戶端客戶端的公鑰到服務(wù)端,也就是將key_pub里的內(nèi)容添加到authorized_keys里
6.完成后重啟,完成服務(wù)器的配置
7.使用,客戶端用putty的時候,點擊SSH-Auth,選擇剛才生成的私鑰,然后就可以免密碼登錄了。
---------------------------來個不華麗的分割線-----------------------------
附linux下生成密鑰對的過程
1.首先在服務(wù)器上生成密鑰(當前是哪個用戶,生成的就是這個用戶的密鑰,我先用root來)
Java代碼
[root@test1 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ##直接回車
Enter passphrase (empty for no passphrase): ##先不輸入密碼
Enter same passphrase again: ##不輸入密碼
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e0:21:b6:16:08:30:e2:c9:ad:a4:d0:be:00:b0:2f:ea root@test1.frady.info
[root@test1 .ssh]# ls
id_rsa id_rsa.pub##自動生成兩個文件
[root@test1 .ssh]# mv id_rsa.pub authorized_keys ##重命名密鑰,保持和/etc/sshd/sshd_config里的名稱一致
參考:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646346.html