品古典家具網(wǎng)站模板2023疫情最新消息今天
系統(tǒng)版本:Debian 12.5、11.1
1 生成密鑰對(duì)
可以用云服務(wù)商控制臺(tái)生成的密鑰對(duì),也可以自己在客戶端或者服務(wù)器上生成,
已經(jīng)有密鑰對(duì)就可以跳過(guò)這步
用戶默認(rèn)密鑰文件路徑為 ~/.ssh/id_rsa
,可以在交互中指定路徑,也可以加-f參數(shù)指定路徑
注意避免用戶覆蓋已有密鑰。
ssh-keygen -t rsa # 生成配對(duì)密鑰,后續(xù)一路enter即可
#ssh-keygen -t rsa -f ~/.ssh/id_rsa
passphrase 的建議:設(shè)置 passphrase
(密碼)是為了提高私鑰的安全性,但如果是自動(dòng)化場(chǎng)景(如無(wú)交互式登錄),則留空更方便。
會(huì)在用戶目錄(即~這個(gè))下生成.ssh文件夾,里面的id_rsa是私鑰,id_rsa.pub是公鑰。
進(jìn)入.ssh
文件夾中,將公鑰寫(xiě)入到authorized_keys中,將id_rsa私鑰下載并保存好。
2 公鑰寫(xiě)入
在以下命令之前,需檢查 authorized_keys 文件是否已存在。如果存在直接追加,避免覆蓋
cd ~/.ssh
touch authorized_keys
cat id_rsa.pub >> authorized_keys # 直接追加到 authorized_keys
設(shè)置 .ssh 目錄和 authorized_keys 文件的權(quán)限,以確保 SSH 密鑰認(rèn)證的安全性,防止未授權(quán)訪問(wèn)或潛在的安全風(fēng)險(xiǎn)
目錄權(quán)限(700):保護(hù)目錄及其文件不被其他用戶訪問(wèn)。
文件權(quán)限(600):保護(hù)公鑰文件內(nèi)容不被篡改或讀取
chmod 700 ~/.ssh
chmod 600 ~/.sshauthorized_keys
3 修改ssh配置
vim /etc/ssh/sshd_config
關(guān)鍵配置項(xiàng)說(shuō)明:
- Port:
修改默認(rèn)端口(22)為其他端口,例如12322
:
Port 12322
- 禁用 root 登錄:
禁止直接使用 root 登錄,提高安全性(如非必要,建議設(shè)置為no
): - 以后只有一個(gè)root用戶 就不用改這里!
PermitRootLogin no
- 密鑰認(rèn)證和密碼認(rèn)證:
使用密鑰認(rèn)證并禁用密碼登錄(測(cè)試密鑰登錄成功后再修改密碼登錄設(shè)置):
PubkeyAuthentication yes
PasswordAuthentication no
- 指定公鑰文件路徑:
# 默認(rèn)是 .ssh/authorized_keys,必要時(shí)可自定義
AuthorizedKeysFile .ssh/authorized_keys
- 指定允許的公鑰類型:
針對(duì)兼容性問(wèn)題(如 Jenkins 插件的 SSH 連接):
PubkeyAcceptedKeyTypes=+ssh-rsa
- 監(jiān)聽(tīng)特定地址: 只允許指定的 IP 地址:
ListenAddress 0.0.0.0 # 允許所有地址
ListenAddress 192.168.1.100 # 僅監(jiān)聽(tīng)特定地址
云服務(wù)商的控制臺(tái)的安全組:最好限制特定ip才能登錄ssh端口
如果不用云服務(wù)商的安全組,可以使用firewall-cmd管理端口,把新的ssh端口先開(kāi)放
我個(gè)人習(xí)慣是先必須修改下面幾項(xiàng)
Port 22 #修改端口
PubkeyAuthentication yes # yes表示允許密鑰登陸
# AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 # 指定密鑰的文件位置
PasswordAuthentication no # 不允許使用密碼登陸,等測(cè)試密鑰登陸成功了再修改此條,以防無(wú)法登陸
PubkeyAcceptedKeyTypes=+ssh-rsa #Jenkins 插件ssh連接失敗Auth fail可以添加
找到對(duì)應(yīng)行,進(jìn)行修改
4 重啟ssh
systemctl restart ssh
last
journalctl -u ssh
或者,如果你想查看實(shí)時(shí)更新:
journalctl -u ssh -f
5 測(cè)試連接
ssh -p 2202 user@server_ip
參考文章:
SSH遠(yuǎn)程管理與配置
https://blog.csdn.net/qq_47855463/article/details/116655311