關於配置ssh免密碼登錄後,仍提示輸入密碼

一、在A端創建密鑰對:
[root@A ~] ssh-keygen -t rsa -b 4096 -P ''

 

二、如果B機器沒有.ssh和authorized_keys文件則創建這個文件夾和文件先,創建後要chown改成當前用戶的所屬者,其次也要改:
chown buser:buser -R ~/.ssh
chmod 700 ~/.ssh
chmod 600 .ssh/authorized_keys

 

三、將公鑰xxxxxx.pub文件拷貝到服務器端的~/.ssh/authorized_keys文件中,有三種方法有三種方法:

 1、通過scp拷貝:
[root@A ~] scp -P 22 ~/.ssh/xxxxxx.pub buser@bserver:~/authorized_keys    #可選參數-P代表指定用端口號22
 2、通過ssh-copyid程序:
[root@A ~] ssh-copy-id -i xxxxxx.pub buser@bserver        #此種方式簡單,不需追加改文件名,但不能指定端口號,默認以22端口
 3、通過cat方法:
[root@A ~] cat ~/.ssh/xxxxxx.pub | ssh -p 22 buser@bserver‘cat >> ~/.ssh/authorized_keys’

 

四、免密碼登錄過程:
1、在A上生成公鑰/私鑰
2、將公鑰拷貝給server B,要重命名成authorized_keys
3、Server A向Server B發送一個連接請求
4、Server B得到Server A的信息後,在authorized_key中查找,如果有相應的用戶名和IP,則隨機生成一個字符串,並用Server A的公鑰加密,發送給Server A
5、Server A得到Server B發來的消息後,使用私鑰進行解密,然後將解密後的字符串發送給Server B。Server B進行和生成的對比,如果一致,則允許免登
總之:A要免密碼登錄到B,B首先要擁有A的公鑰,然後B要做一次加密驗證。對於非對稱加密,公鑰加密的密文不能公鑰解開,只能私鑰解開。

五、常見問題:
1、配置了免密,爲什麼還提示輸入密碼?
查看remote端日誌
tail -f /var/log/secure
發現:Authentication refused: bad ownership or modes for file /home/dragon/.ssh/authorized_keys
很明顯是由於/home/dragon/.ssh/authorized_keys文件的權限設置不正確,將權限設置爲600即可:
chmod 600 .ssh/authorized_keys
2、配置了免密,提示輸入密碼,沒有日誌沒有報錯,可以通過以下方式調試:
ssh -vvv buser@bserver

如果權限不對或者路勁不對都會導致找不到對應的私鑰或公鑰,可能 ~/.ssh目錄爲非700權限,並檢查私鑰的路勁和文件名是否正確:
vim /etc/ssh/ssh_config

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章