問題:
今天在配置SSH免密登錄連接自己的阿里雲服務器,在將RSA加密生成的公鑰放到服務器后,用Xshell連接服務,出現所選的用戶密鑰未在遠程主機上注冊這樣的提示,一時懵逼,不知所措,后面終於找到了問題所在,此次筆記記錄解決問題的過程
一配置流程
1.使用Xshell工具RSA加密的方式生成秘鑰對:
如下圖所示:在工具選項內選擇-"新建用戶生成密鑰對向導"

注意:這里的秘鑰加密方式有兩種,一種是DSA,一種是RSA.要選擇秘鑰類型為RSA加密方式,因為新版本的openssh默認禁用了dsa

點擊下一步開始生成秘鑰對

密鑰對生成完成,需要設置秘鑰對的加密密碼(這個密碼用於給密鑰對加密),和登錄密碼不同

公鑰生成完成,點擊按鈕,將公鑰保存為文件

同時打開xshell連接屬性(連接-用戶身份驗證-瀏覽-可以看到生成的私鑰,這個私鑰就是在登錄的時候用於匹配公鑰,可以導出到本地,也可以由Xshell管理)

將生成的公鑰(.pub結尾的文件放到服務的.ssh文件夾中,注意這是個隱藏的文件夾)

選擇登錄方式(秘鑰的方式登錄),這里選擇與服務器上秘鑰對應的私私鑰,同時舒服為秘鑰加密的密碼(在生成秘鑰時自己手動設置的)

二.踩坑集錦:
1.注意:.ssh的文件目錄的權限不能為777,可以設置為755 600,就是不能為777,否則使用xshell登錄時會出現'所選的用戶密鑰未在遠程主機上注冊'這樣的提示
原因是sshd為了安全,對屬主的目錄和文件權限有所要求。如果權限不對,則ssh的免密碼登陸不生效。
2.查看登錄日志可以找到問題所在
日志所在的目錄

3.sshd需要開啟PAM 修改/etc/ssh/sshd_config
設置UsePAM=yes
