有時候我們希望不用每次登錄linux服務器都要輸入密碼或悲,那么這個時候可以選擇ssh密鑰登錄风喇,就是rsa公鑰放到服務器上柱衔,私鑰放在客戶端上樊破,每次登錄的時候,用密鑰登錄唆铐;這樣更方便也更安全
- 先生成一個rsa密鑰對
[root@VM_57_158_centos ~]# 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:
7e:7a:29:07:e5:4f:05:b5:8f:98:66:b3:1b:77:71:1b root@VM_57_158_centos
The key's randomart image is:
+--[ RSA 2048]----+
| .. |
| . . |
| .. |
| . o.o |
| So *..Eo|
| .. .o.o =|
| ...+o ...|
| .o+ .+ . |
| .+ . |
+-----------------+
默認生成的密鑰文件在root/.ssh目錄下
- 檢查下.ssh目錄下authorized_keys文件是否存在哲戚,沒有的話,創(chuàng)建一個,然后將id_rsa.pub的內容追加到authorized_keys文件尾
cd .ssh
touch authorized_keys
cat id_rsa.pub >> authorized_keys -- 將id_rsa.pub的內容追加到authorized_keys
修改.ssh的權限為700, authorized_keys的權限為600或者更嚴格的400艾岂,否則登錄的時候會提示server refuse you key,
cd ..
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
如果你要設置的用戶不是root,比如是git之類的
那么你要設置的.ssh目錄應該是 /home/git/.ssh, 并且要將.ssh目錄和authorized_keys文件的文件所有者改為git
chown -R git:git .ssh
否則還是登陸不了
- 修改下ssh的配置
vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
這里有一點很重要惫恼,在你配置密鑰登錄成功之前,千萬不要太自信將
PasswordAuthentication 設置no澳盐,否則你密鑰登錄不了,然后又禁止密碼登錄令宿,就悲劇了
在密鑰登錄設置成功之后叼耙,可以將PasswordAuthentication 設置為no,禁用密碼登錄了粒没,比較安全
- 將私鑰文件id_rsa拷貝到你的客戶端
如果你是要在windows上使用putty客戶端登陸linux服務器
那么你還需要將這個私鑰稍微轉換下
打開putty key generator 工具
File -> Load private key, 然后點save private key, 就轉換完畢筛婉,window下私鑰一般以.ppk后綴結尾,比如另存為id_rsa.ppk - putty密鑰登錄
使用putty登錄的時候,填好服務器地址之后爽撒,在
Connection -> Data 界面入蛆,Auto-login username 填入你的用戶名
Connection -> SSh -> Auth 界面,Private key file for authentication, browse選擇你的私鑰文件id_rsa.ppk硕勿,
然后你可以把這些配置save下哨毁,以后就不用每次都配置一遍;最后點open, 當當當當源武,直接就登入進去了