9.2.1 配置sshd服務

2022-05-31 11:19 更新

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

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

基于口令的驗證—用賬戶和密碼來驗證登錄;

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

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

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

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

在RHEL 7系統(tǒng)中,已經(jīng)默認安裝并啟用了sshd服務程序。接下來使用ssh命令進行遠程連接,其格式為“ssh [參數(shù)] 主機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:此處輸入遠程主機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管理員的身份遠程登錄到服務器,則可以大大降低被黑客暴力破解密碼的幾率。下面進行相應配置。首先使用Vim文本編輯器打開sshd服務的主配置文件,然后把第48行#PermitRootLogin yes參數(shù)前的井號(#)去掉,并把參數(shù)值yes改成no,這樣就不再允許root管理員遠程登錄了。記得最后保存文件并退出。

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

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

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

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號