本文基于Linux上CentOS 7版本配合Xshell 7進行演示
目錄
一.SSH簡介
1.介紹
2.工作流程
二.具體配置免密步驟
1.配置前準(zhǔn)備工作
2.正式配置過程
三.在服務(wù)器端配置SSH遠程黑白名單
1.配置文件/etc/ssh/sshd_config部分參數(shù)解析
2.配置遠程登錄黑白名單
一.SSH簡介
1.介紹
SSH用于計算機之間的加密登錄,是一類網(wǎng)絡(luò)協(xié)議,使用SSH協(xié)議遠程登錄另一臺計算機,這種登錄是相對安全的,即使被中途截獲,密碼不會泄露。
2.工作流程
(1)建立連接:SSH服務(wù)器在指定的端口監(jiān)聽客戶端的連接請求,在客戶端向服務(wù)器發(fā)起連接請求后,建立一個TCP連接。
(2)協(xié)商版本:某些版本可以支持更多的認證方法和密鑰交換方法,SSH服務(wù)器和客戶端通過協(xié)商確定最終使用的SSH版本號。
(3)算法協(xié)商:雙方根據(jù)各自支持的算法,協(xié)商出最終用于產(chǎn)生會話密鑰的密鑰交換算法,用于數(shù)據(jù)信息加密的加密算法、用于進行數(shù)字簽名和認證的公鑰算法。
(4)交換密鑰:服務(wù)器和客戶端通過密鑰交換算法,動態(tài)生成共享的會話密鑰和繪畫ID,建立加密通道。會話密鑰主要用于后續(xù)數(shù)據(jù)傳輸?shù)募用埽瑫扞D用于在認證過程中標(biāo)識該SSH連接。
(5)用戶認證:密碼(password)認證、密鑰(publickey)認證、password-publickey認證(同時滿足)、all認證(選擇其一)
(6)會話請求和交互:認證通過后,SSH客戶端向服務(wù)器端發(fā)送會話請求,請求服務(wù)器提供服務(wù),建立好會話后,SSH服務(wù)器端和客戶端在該會話上進行數(shù)據(jù)信息交互。
二.具體配置免密步驟
1.配置前準(zhǔn)備工作
(1)準(zhǔn)備兩臺Linux虛擬機,一臺作為服務(wù)端,一臺作為用戶端
注意:兩臺虛擬機均需要關(guān)閉selinux、防火墻(可參考專欄相關(guān)文章)
(2)使用Xshell遠程連接工工具生成公鑰文件
點擊“新建用戶密鑰生成向?qū)А?/p>
?點擊“下一步”到此頁面,保持默認選項即可,再點擊“下一步”?
在此定義好名稱和密碼,點擊“下一步”?
在此已經(jīng)生成公鑰文件,可以復(fù)制下框內(nèi)文本,也可以將文本保存為桌面文件,方便下一步使用,點擊完成即可
?(3)開始在服務(wù)器端存放客戶端公鑰,查看是否有/root/.ssh/authorized_keys文件,如果沒有可以手動創(chuàng)建。
[root@sulibao ~]# cd /root/.ssh/
[root@sulibao .ssh]# ll
total 8
-rw-r--r-- 1 root root 381 Jan 4 10:30 authorized_keys
2.正式配置過程
(1)在服務(wù)器端編輯/root/.ssh/authorized_keys,將上面保存的客戶端公鑰文本保存在文件中
?(2)在客戶端,使用“ssh-keygen -t rsa -b 2048”命令生成密鑰文件
[sulibao@sulibao ~]$ ssh-keygen -t rsa -b 2048
//-t指定加密算法,-b指定位數(shù)
(3)在客戶端使用 “ssh-copy-id -i root@服務(wù)端IP”將密鑰文件拷貝給服務(wù)端,并輸入一次服務(wù)器端密碼
[sulibao@sulibao ~]$ ssh-copy-id -i root@192.168.xx.xx
?
(4)測試是否能夠免密登錄,“ssh 用戶名@目標(biāo)IP”?
[sulibao@sulibao ~]$ ssh root@192.168.xx.xx
Last login: Fri Jan 6 11:42:27 2023 from 192.168.xx.xx
[root@sulibao ~]#
注意:此時如果想從服務(wù)端免密登錄客戶端,就在服務(wù)端重復(fù)上述在客戶端的操作操作即可
三.在服務(wù)器端配置SSH遠程黑白名單
主要是對“/etc/ssh/sshd_config”配置文件進行修改
1.配置文件/etc/ssh/sshd_config部分參數(shù)解析
Port 22 | 監(jiān)聽端口,默認監(jiān)聽22端口 |
AddressFamily any | IPV4和IPV6協(xié)議家族用哪個,any表示二者均有 |
ListenAddress 0.0.0.0 | 指明監(jiān)控的地址,0.0.0.0表示本機的所有地址 |
ListenAddress :: | 指明監(jiān)聽的IPV6的所有地址格式 |
Protocol 2 | 使用SSH第二版本 |
HostKey for protocol version 1 | 一版的SSH支持以下一種秘鑰形式 |
HostKeys for protocol version 2 | 使用第二版本發(fā)送秘鑰,支持以下四種秘鑰認證的存放位置 HostKey /etc/ssh/ssh_host_rsa_key ??????# rsa私鑰認證? |
ServerKeyBits 1024 | 主機秘鑰長度 |
LoginGraceTime 2m | 登錄的寬限時間,默認2分鐘沒有輸入密碼,則自動斷開連接 |
PermitRootLogin yes | 是否允許管理員遠程登錄,'yes'表示允許,‘no’表示禁止 |
StrictModes yes | 是否讓sshd去檢查用戶主目錄或相關(guān)文件的權(quán)限數(shù)據(jù) |
MaxAuthTries 6 ?? | 最大認證嘗試次數(shù),最多可以嘗試6次輸入密碼。之后需要等待某段時間后才能再次輸入密碼 |
MaxSessions 10 ? | 允許的最大會話數(shù) |
AuthorizedKeysFile .ssh/authorized_keys | 選擇基于密鑰驗證時,客戶端生成一對公私鑰之后,會將公鑰放到.ssh/authorizd_keys里面 |
PasswordAuthentication yes | 是否允許支持基于口令的認證 |
ChallengeResponseAuthentication no ? | 是否允許使用鍵盤輸入身份驗證,也就是xshell的第三個登錄方式 |
UseDNS yes | 是否反解DNS,如果想讓客戶端連接服務(wù)器端快一些,可以改為no |
ubsystem sftp /usr/libexec/openssh/sftp-server | 支持 SFTP ,如果注釋掉,則不支持sftp連接 |
AllowUsers user1 user2 ? | 登錄白名單(默認沒有這個配置,需要自己手動添加),允許遠程登錄的用戶。如果名單中沒有的用戶,則提示拒絕登錄 |
2.配置遠程登錄黑白名單
(1)禁止root用戶遠程登錄,將PermitRootLogin yes改為PermitRootLogin no
?需要重啟sshd服務(wù)該配置文件才生效
[root@sulibao ~]# systemctl restart sshd
此時再使用Xshell以root用戶身份則無法登錄
(2)禁止/允許某些用戶登錄?
新建兩個用戶user1和user2來測試
[root@sulibao ~]# useradd user1
[root@sulibao ~]# useradd user2
編輯配置文件“/etc/ssh/sshd_config ”,在文末添加內(nèi)容后重啟
[root@sulibao ~]# vim /etc/ssh/sshd_config
[root@sulibao ~]# systemctl restart sshd
進行測試,user1可以登錄而user2不行
文章來源:http://www.zghlxwxcb.cn/news/detail-834696.html
注意:AllowUsers?選項指定哪些用戶可以登錄,那么所有非指定用戶都不能登錄,像上面的情況只指定了user1可以登錄,此時連root用戶都不能登錄,需要謹慎修改!文章來源地址http://www.zghlxwxcb.cn/news/detail-834696.html
到了這里,關(guān)于簡單幾步學(xué)會Linux用戶使用SSH遠程免密登錄,LinuxSSH服務(wù)器配置允許/禁止某些用戶遠程登錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!