【開發(fā)記錄】ssh密鑰登陸
首先要先建立密鑰對,不管是服務(wù)器創(chuàng)建還是客戶端創(chuàng)建都可以,但是權(quán)限必須給對(這個稍后說明),以下為CSDN某篇關(guān)于密鑰登錄的文章
我們一般使用 PuTTY 等 SSH 客戶端來遠(yuǎn)程管理 Linux 服務(wù)器。但是,一般的密碼方式登錄,容易有密碼被暴力破解的問題。所以,一般我們會將 SSH 的端口設(shè)置為默認(rèn)的 22 以外的端口,或者禁用 root 賬戶登錄。其實(shí),有一個更好的辦法來保證安全,而且讓你可以放心地用 root 賬戶從遠(yuǎn)程登錄——那就是通過密鑰方式登錄。
密鑰形式登錄的原理是:利用密鑰生成器制作一對密鑰——一只公鑰和一只私鑰。將公鑰添加到服務(wù)器的某個賬戶上,然后在客戶端利用私鑰即可完成認(rèn)證并登錄。這樣一來,沒有私鑰,任何人都無法通過 SSH 暴力破解你的密碼來遠(yuǎn)程登錄到系統(tǒng)。此外,如果將公鑰復(fù)制到其他賬戶甚至主機(jī),利用私鑰也可以登錄。
下面來講解如何在 Linux 服務(wù)器上制作密鑰對,將公鑰添加給賬戶,設(shè)置 SSH,最后通過客戶端登錄。
1. 制作密鑰對
首先在服務(wù)器上制作密鑰對。首先用密碼登錄到你**打算使用密鑰登錄的賬戶**,然后執(zhí)行以下命令(以root為例):
[root@host ~]$ ssh-keygen? <== 建立密鑰對
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter (建議增加參數(shù)-t選擇其他類型密鑰如-t ed25519)
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <== 輸入密鑰鎖碼,或直接按 Enter 留空
Enter same passphrase again: <== 再輸入一遍密鑰鎖碼
Your identification has been saved in /root/.ssh/id_(密鑰類型). <== 私鑰
Your public key has been saved in /root/.ssh/id_(密鑰類型).pub. <== 公鑰
The key fingerprint is:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host
密鑰鎖碼在使用私鑰時必須輸入,這樣就可以保護(hù)私鑰不被盜用。當(dāng)然,也可以留空,實(shí)現(xiàn)無密碼登錄。
現(xiàn)在,在 root 用戶的家目錄中生成了一個 .ssh 的隱藏目錄,內(nèi)含兩個密鑰文件。id_rsa 為私鑰,id_rsa.pub 為公鑰。
2. 在服務(wù)器上安裝公鑰
鍵入以下命令,在服務(wù)器上安裝公鑰:
[root@host ~]$ cd .ssh
[root@host .ssh]$ cat id_rsa.pub >> authorized_keys
如此便完成了公鑰的安裝。為了確保連接成功,請保證以下文件權(quán)限正確:
[root@host .ssh]$ chmod 600 authorized_keys (此處權(quán)限有誤,后面會說明)
[root@host .ssh]$ chmod 700 ~/.ssh (此處權(quán)限有誤,后面會說明)
3. 設(shè)置 SSH,打開密鑰登錄功能
編輯 /etc/ssh/sshd_config 文件,進(jìn)行如下設(shè)置:
RSAAuthentication yes
PubkeyAuthentication yes
另外,請留意 root 用戶能否通過 SSH 登錄:
PermitRootLogin yes
當(dāng)你完成全部設(shè)置,并以密鑰方式登錄成功后,再禁用密碼登錄:
PasswordAuthentication no
最后,重啟 SSH 服務(wù):
[root@host .ssh]$ service sshd restart
4. 將私鑰下載到客戶端,然后轉(zhuǎn)換為 PuTTY 能使用的格式
使用 WinSCP、SFTP 等工具將私鑰文件 id_rsa 下載到客戶端機(jī)器上。然后打開 PuTTYGen,單擊 Actions 中的 Load 按鈕,載入你剛才下載到的私鑰文件。如果你剛才設(shè)置了密鑰鎖碼,這時則需要輸入。
載入成功后,PuTTYGen 會顯示密鑰相關(guān)的信息。在 Key comment 中鍵入對密鑰的說明信息,然后單擊 Save private key 按鈕即可將私鑰文件存放為 PuTTY 能使用的格式。
今后,當(dāng)你使用 PuTTY 登錄時,可以在左側(cè)的 Connection -> SSH -> Auth 中的 Private key file for authentication: 處選擇你的私鑰文件,然后即可登錄了,過程中只需輸入密鑰鎖碼即可。
————————————————
版權(quán)聲明:本文為CSDN博主「permike」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/permike/article/details/52386868

上面這篇文章中主要講怎么創(chuàng)建密鑰對,但有時候因為用戶權(quán)限問題或者openssh版本等等各種各樣的原因?qū)е旅荑€對的權(quán)限給的不對,然而密鑰登錄對權(quán)限限制非常嚴(yán)格,導(dǎo)致密鑰登錄失敗
所以,以下這篇CSDN的文章便解決了文件權(quán)限給予問題:
ssh免密登陸配置好后不成功
素質(zhì)教育的漏網(wǎng)之
于 2019-02-27 20:01:20 發(fā)布
●出現(xiàn)問題
將每臺機(jī)器的id_rsa.pub 追加到其他機(jī)器的authorized_keys時,怎么ssh 每一個主機(jī)都不成功,查了其他博客,一是權(quán)限問題
二是防火墻問題
首先查看安全日志
Feb 27 19:23:14 second sshd[9913]: Authentication refused: bad ownership or modes for file /home/wdz/.ssh/authorized_keys
上網(wǎng)查閱后發(fā)現(xiàn)這個問題是權(quán)限導(dǎo)致的問題,也就是說authorized_keys的權(quán)限不對,需要改變!
●解決問題
sshd為了安全,對屬主的目錄和文件權(quán)限有所要求。如果權(quán)限不對,則ssh的免密碼登陸不生效。
用戶目錄權(quán)限為 755 或者 700,就是不能是77x。
.ssh目錄權(quán)限一般為755或者700。
rsa_id.pub 及authorized_keys權(quán)限一般為644(直接touch創(chuàng)建的文件權(quán)限是664,需要改成644)
rsa_id權(quán)限必須為600
————————————————
版權(quán)聲明:本文為CSDN博主「素質(zhì)教育的漏網(wǎng)之」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_37036963/article/details/87987959
若依舊登錄失敗可以用ssh調(diào)試模式登錄查看問題(一個連接只能連接一次)
/usr/sbin/sshd -p 10022 -d
-p 10022為設(shè)定的調(diào)試端口,-d為調(diào)試模式