????????由于授權(quán)了公鑰到服務(wù)器上,從而想達(dá)到免密碼登錄服務(wù)器。之前有成功配置過(guò)一臺(tái)服務(wù)器,所以這次本以為沒(méi)什么問(wèn)題。但是后來(lái)設(shè)置了之后,再次ssh登錄的時(shí)候還是一直需要輸入密碼。
? ? ? ? 很奇怪的事情。百度了很久,谷歌了很久,大部分都是這說(shuō)權(quán)限的問(wèn)題。權(quán)限解決不了問(wèn)題只能硬著頭皮去看調(diào)試信息。ssh -t root@服務(wù)器IP -p 110 -vvv 。這輸出的調(diào)試信息中,我才發(fā)現(xiàn)一直提示我本地 .ssh/id_dsa.pub 找不到該文件或者說(shuō)該目錄。奇怪了,為什么需要id_dsa.pub這個(gè)類型的公鑰。
? ? ? ? 登錄服務(wù)器上,去ssh目錄(cd /etc/ssh/)查看sshd_config 配置信息(cat sshd_config)。HostKey:設(shè)置計(jì)算機(jī)私人密匙的文件,個(gè)人覺(jué)得也為配置服務(wù)器ssh驗(yàn)證方式的地方,驗(yàn)證方式為:
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
#號(hào)在前面的是注釋掉的,這個(gè)表示服務(wù)器上開(kāi)啟了另一種驗(yàn)證方式:dsa加密方式的公鑰。遇到這種情況,解決方式有兩個(gè):
????????1、注釋掉這一段(就是加個(gè)#號(hào))這種方式,可能會(huì)影響到其他人。
????????2、在本地生成dsa加密方式的公鑰和私鑰,然后把公鑰傳到服務(wù)器。
????????我的解決方案是在本地生成一個(gè)dsa加密方式的公鑰命令如下:
????????ssh-keygen -t dsa -C "347921588@qq.com" 默認(rèn)密碼默認(rèn),連按3次回車。會(huì)顯示生成的公鑰的圖案,由于圖片被刪除了就不展示了。當(dāng)然,可以直接用命令行查看?ls ~/.ssh/ 。
????????公鑰存在了,然后把公鑰追加到服務(wù)器 登錄用戶的目錄下的.ssh/authorized_keys 中,我登錄服務(wù)器的用戶是root,所以目錄是: /root/.ssh/? 下的authorized_keys。建議用命令行追加進(jìn)去。
????????ssh-copy-id -i .ssh/id_dsa.pub? root@服務(wù)器的IP 例如 ssh-copy-id -i .ssh/id_rsa.pub? root@16.15.14.16 根據(jù)提示輸入root的登錄密碼。用該命令行的好處是,不會(huì)改變authorized_keys中的原有數(shù)據(jù),不會(huì)影響其他用戶的授權(quán),會(huì)追加到后面。添加成功后,再次登錄成功。
????????總結(jié)下:遇到授權(quán)后,要求再次輸入密碼的。首先去看下ssh的配置文件,也就是sshd_config ,看一下開(kāi)啟了幾個(gè)驗(yàn)證方式。只開(kāi)啟了一個(gè)驗(yàn)證方式,要看看是不是和自己本地Mac上生成的公鑰的加密方式一樣。如果都一樣,而且之前已經(jīng)有其他用戶的公鑰在authorized_keys中的話,那就需要檢查下本地的公鑰是否正確了。如果開(kāi)啟多個(gè)驗(yàn)證方式,那么就如前文所說(shuō)方式處理就好。如果用戶目錄下的.ssh/ 和authorized_keys 都是手動(dòng)創(chuàng)建的,需要注意權(quán)限問(wèn)題。
可能這種情況很少有人遇到,也可能是個(gè)例,但發(fā)布出來(lái)給自己留個(gè)記錄,同時(shí)希望能給其他人一個(gè)避免入坑的方法。可能寫(xiě)的也不對(duì)。。但是希望幫到更多的人。
阿里云 綁定的密鑰登錄的好像不行...