9.2.1 配置sshd服務(wù)

2022-05-31 11:19 更新

SSH(Secure Shell)是一種能夠以安全的方式提供遠(yuǎn)程登錄的協(xié)議,也是目前遠(yuǎn)程管理Linux系統(tǒng)的首選方式。在此之前,一般使用FTP或Telnet來進(jìn)行遠(yuǎn)程登錄。但是因?yàn)樗鼈円悦魑牡男问皆诰W(wǎng)絡(luò)中傳輸賬戶密碼和數(shù)據(jù)信息,因此很不安全,很容易受到黑客發(fā)起的中間人攻擊,這輕則篡改傳輸?shù)臄?shù)據(jù)信息,重則直接抓取服務(wù)器的賬戶密碼。

想要使用SSH協(xié)議來遠(yuǎn)程管理Linux系統(tǒng),則需要部署配置sshd服務(wù)程序。sshd是基于SSH協(xié)議開發(fā)的一款遠(yuǎn)程管理服務(wù)程序,不僅使用起來方便快捷,而且能夠提供兩種安全驗(yàn)證的方法:

基于口令的驗(yàn)證—用賬戶和密碼來驗(yàn)證登錄;

基于密鑰的驗(yàn)證—需要在本地生成密鑰對(duì),然后把密鑰對(duì)中的公鑰上傳至服務(wù)器,并與服務(wù)器中的公鑰進(jìn)行比較;該方式相較來說更安全。

前文曾多次強(qiáng)調(diào)“Linux系統(tǒng)中的一切都是文件”,因此在Linux系統(tǒng)中修改服務(wù)程序的運(yùn)行參數(shù),實(shí)際上就是在修改程序配置文件的過程。sshd服務(wù)的配置信息保存在/etc/ssh/sshd_config文件中。運(yùn)維人員一般會(huì)把保存著最主要配置信息的文件稱為主配置文件,而配置文件中有許多以井號(hào)開頭的注釋行,要想讓這些配置參數(shù)生效,需要在修改參數(shù)后再去掉前面的井號(hào)。sshd服務(wù)配置文件中包含的重要參數(shù)如表9-1所示。

表9-1 sshd服務(wù)配置文件中包含的參數(shù)以及作用

參數(shù) 作用
Port 22 默認(rèn)的sshd服務(wù)端口
ListenAddress 0.0.0.0 設(shè)定sshd服務(wù)器監(jiān)聽的IP地址
Protocol 2 SSH協(xié)議的版本號(hào)
HostKey /tc/ssh/ssh_host_key SSH協(xié)議版本為1時(shí),DES私鑰存放的位置
HostKey /etc/ssh/ssh_host_rsa_key SSH協(xié)議版本為2時(shí),RSA私鑰存放的位置
HostKey /etc/ssh/ssh_host_dsa_key SSH協(xié)議版本為2時(shí),DSA私鑰存放的位置
PermitRootLogin yes 設(shè)定是否允許root管理員直接登錄
StrictModes yes 當(dāng)遠(yuǎn)程用戶的私鑰改變時(shí)直接拒絕連接
MaxAuthTries 6 最大密碼嘗試次數(shù)
MaxSessions 10 最大終端數(shù)
PasswordAuthentication yes 是否允許密碼驗(yàn)證
PermitEmptyPasswords no 是否允許空密碼登錄(很不安全)

在RHEL 7系統(tǒng)中,已經(jīng)默認(rèn)安裝并啟用了sshd服務(wù)程序。接下來使用ssh命令進(jìn)行遠(yuǎn)程連接,其格式為“ssh [參數(shù)] 主機(jī)IP地址”。要退出登錄則執(zhí)行exit命令。

    [root@linuxprobe ~]# ssh 192.168.10.10
    The authenticity of host '192.168.10.10 (192.168.10.10)' can't be established.
    ECDSA key fingerprint is 4f:a7:91:9e:8d:6f:b9:48:02:32:61:95:48:ed:1e:3f.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.10.10' (ECDSA) to the list of known hosts.
    root@192.168.10.10's password:此處輸入遠(yuǎn)程主機(jī)root管理員的密碼
    Last login: Wed Apr 15 15:54:21 2017 from 192.168.10.10
    [root@linuxprobe ~]# 
    [root@linuxprobe ~]# exit
    logout
    Connection to 192.168.10.10 closed.

如果禁止以root管理員的身份遠(yuǎn)程登錄到服務(wù)器,則可以大大降低被黑客暴力破解密碼的幾率。下面進(jìn)行相應(yīng)配置。首先使用Vim文本編輯器打開sshd服務(wù)的主配置文件,然后把第48行#PermitRootLogin yes參數(shù)前的井號(hào)(#)去掉,并把參數(shù)值yes改成no,這樣就不再允許root管理員遠(yuǎn)程登錄了。記得最后保存文件并退出。

    [root@linuxprobe ~]# vim /etc/ssh/sshd_config 
     ………………省略部分輸出信息………………
     46 
     47 #LoginGraceTime 2m
     48 PermitRootLogin no
     49 #StrictModes yes
     50 #MaxAuthTries 6
     51 #MaxSessions 10
     52
     ………………省略部分輸出信息………………

再次提醒的是,一般的服務(wù)程序并不會(huì)在配置文件修改之后立即獲得最新的參數(shù)。如果想讓新配置文件生效,則需要手動(dòng)重啟相應(yīng)的服務(wù)程序。最好也將這個(gè)服務(wù)程序加入到開機(jī)啟動(dòng)項(xiàng)中,這樣系統(tǒng)在下一次啟動(dòng)時(shí),該服務(wù)程序便會(huì)自動(dòng)運(yùn)行,繼續(xù)為用戶提供服務(wù)。

    [root@linuxprobe ~]# systemctl restart sshd
    [root@linuxprobe ~]# systemctl enable sshd

這樣一來,當(dāng)root管理員再來嘗試訪問sshd服務(wù)程序時(shí),系統(tǒng)會(huì)提示不可訪問的錯(cuò)誤信息。雖然sshd服務(wù)程序的參數(shù)相對(duì)比較簡(jiǎn)單,但這就是在Linux系統(tǒng)中配置服務(wù)程序的正確方法。大家要做的是舉一反三、活學(xué)活用,這樣即便以后遇到了陌生的服務(wù),也一樣可以搞定了。

    [root@linuxprobe ~]# ssh 192.168.10.10
    root@192.168.10.10's password:此處輸入遠(yuǎn)程主機(jī)root用戶的密碼
    Permission denied, please try again.
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)