溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Centos 7.4中的遠(yuǎn)程訪問控制的實現(xiàn)方法

發(fā)布時間:2020-10-20 15:18:47 來源:腳本之家 閱讀:192 作者:俊偉祺i 欄目:服務(wù)器

一、SSH遠(yuǎn)程管理

SSH是一種安全通道協(xié)議,主要用來實現(xiàn)字符界面的遠(yuǎn)程登錄、遠(yuǎn)程復(fù)制等功能。SSH協(xié)議對通信雙方的數(shù)據(jù)傳輸進(jìn)行了加密處理,其中包括用戶登錄時輸入的用戶口令。與早期的Telent、RSH、RCP、等應(yīng)用相比,SSH協(xié)議提供了更好的安全性。

1、配置OpenSSH服務(wù)端

在Centos 7.4系統(tǒng)中,OpenSSH服務(wù)器由openssh、openssh-server等軟件包提供(默認(rèn)已安裝),并已將sshd添加為標(biāo)準(zhǔn)的系統(tǒng)服務(wù)。執(zhí)行“systemctl start sshd”命令即可啟動sshd服務(wù),包括root在內(nèi)的大部分用戶都可以遠(yuǎn)程登錄系統(tǒng)。sshd服務(wù)的配置文件默認(rèn)位于/etc/ssh/sshd_config目錄下,正確調(diào)整相關(guān)配置項,可以進(jìn)一步提高sshd遠(yuǎn)程登錄的安全性。

1)服務(wù)監(jiān)聽選項

sshd服務(wù)使用的默認(rèn)端口號為22,必要時建議修改此端口號,并指定監(jiān)聽服務(wù)的具體IP地址,以提高在網(wǎng)絡(luò)中的隱蔽性。V2版本要比V1版本的安全性要更好,禁用DNS反向解析可以提高服務(wù)器的響應(yīng)速度。

[root@centos01 ~]# vim /etc/ssh/sshd_config  <!--編輯sshd主配置文件-->
17 Port 22     <!--監(jiān)聽端口為22-->
19 ListenAddress 192.168.100.10  <!--監(jiān)聽地址為192.168.100.10-->
21 Protocol 2    <!--使用SSH V2協(xié)議-->
118 UseDNS no  <!--禁用DNS反向解析-->
......       <!--此處省略部分內(nèi)容-->
[root@centos01 ~]# systemctl restart sshd  <!--重啟sshd服務(wù)-->

2)用戶登錄控制

sshd服務(wù)默認(rèn)允許root用戶登錄,但在Internet中使用時是非常不安全的。關(guān)于sshd服務(wù)的用戶登錄控制,通常應(yīng)禁止root用戶或密碼為空的用戶登錄。另外,可以限制登錄驗證的時間(默認(rèn)為2分鐘)及最大重試次數(shù),若超過限制后仍未能登錄則斷開連接。

[root@centos01 ~]# vim /etc/ssh/sshd_config   <!--編輯sshd主配置文件-->
 37 LoginGraceTime 2m    <!--登錄驗證時間為2分鐘-->
 38 PermitRootLogin yes   <!--禁止root用戶登錄-->
 40 MaxAuthTries 6        <!--最大重試次數(shù)為6-->
 67 PermitEmptyPasswords no    <!--禁止空密碼用戶登錄-->
 ......       <!--此處省略部分內(nèi)容-->
[root@centos01 ~]# systemctl restart sshd      <!--重啟sshd服務(wù)-->

2、登錄驗證方式

對于服務(wù)器的遠(yuǎn)程管理,除了用戶賬戶的安全控制以外,登錄驗證的方式也非常重要。sshd服務(wù)支持兩種驗證方式——密碼驗證、密鑰對驗證,可以設(shè)置只使用其中一種方式,也可以兩種方式都啟用。

密碼驗證:對服務(wù)器中本地系統(tǒng)用戶的登錄名稱、密碼進(jìn)行驗證。這種方式使用最為簡便,但從客戶端角度來看,正在連接的服務(wù)器有可能被假冒;從服務(wù)器角度來看,當(dāng)遭遇密碼窮舉第三者時防御能力比較弱。

密鑰對驗證:要求提供相匹配的密鑰信息才能通過驗證。通常先在客戶端中創(chuàng)建一對密鑰文件(公鑰、私鑰),然后將公鑰文件放到服務(wù)器中的指定位置。遠(yuǎn)程登錄時,系統(tǒng)將使用公鑰,私鑰進(jìn)行加密/解密關(guān)聯(lián)驗證,大大增強(qiáng)了遠(yuǎn)程管理的安全性。該方式不易被假冒,且可以免交互登錄,在Shell中被廣泛使用。

當(dāng)密碼驗證,密鑰對驗證都啟用時,服務(wù)器將優(yōu)先使用密鑰對驗證。對于安全性要求較高的服務(wù)器,建議將密碼驗證方式禁用,只允許啟用密鑰對驗證方式;若沒有特殊要求,則兩種方式都可以啟用。

[root@centos01 ~]# vim /etc/ssh/sshd_config <!--編輯sshd主配置文件-->
 43 PubkeyAuthentication yes     <!--啟用密鑰對驗證-->
 47 AuthorizedKeysFile   .ssh/authorized_keys <!--指定公鑰庫文件-->
 66 PasswordAuthentication yes    <!--啟用密碼驗證-->
......       <!--此處省略部分內(nèi)容-->
[root@centos01 ~]# systemctl restart sshd     <!--重啟sshd服務(wù)-->

其中,公鑰文件用來保存多個客戶端上傳的公鑰文本,以便與客戶端本地的私鑰文件進(jìn)行匹配。

二、使用SSH客戶端程序

在Centos 7.4系統(tǒng)中,OpenSSH客戶端由openssh-clients軟件包提供(默認(rèn)已安裝),其中包括ssh遠(yuǎn)程登錄命令,以及scp、sftp遠(yuǎn)程復(fù)制和文件傳輸命令等。

1、命令程序ssh遠(yuǎn)程登錄

通過ssh命令可以遠(yuǎn)程登錄sshd服務(wù),為用戶提供一個安全的Shell環(huán)境,以便對服務(wù)器進(jìn)行管理和維護(hù)。使用時應(yīng)指定登錄用戶、目標(biāo)主機(jī)地址作為參數(shù)。示例如下:

[root@centos02 ~]# ssh root@192.168.100.10
root@192.168.100.10's password: 
Last login: Mon Nov 11 19:02:50 2019 from 192.168.100.254
[root@centos01 ~]# 
[root@centos01 ~]# 
[root@centos01 ~]# ssh root@192.168.100.10
The authenticity of host '192.168.100.10 (192.168.100.10)' can't be established.
ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.
ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.
Are you sure you want to continue connecting (yes/no)? yes  <!--接受密鑰-->
Warning: Permanently added '192.168.100.10' (ECDSA) to the list of known hosts.
root@192.168.100.10's password:   <!--輸入密碼-->
Last login: Mon Nov 11 19:03:08 2019 from 192.168.100.20
[root@centos01 ~]# who     <!--確認(rèn)當(dāng)前用戶-->
root   pts/1    2019-11-11 19:03 (192.168.100.20)
root   pts/2    2019-11-11 19:04 (192.168.100.10)

如果sshd服務(wù)器使用了非默認(rèn)的端口(如2222),則在登錄時必須通過“-p”選項指定端口號。示例如下:

[root@centos01 ~]# vim /etc/ssh/sshd_config<!--修改ssh主配置文件-->
Port 2222     <!--修改監(jiān)聽端口號為2222-->
[root@centos01 ~]# systemctl restart sshd  <!--重啟sshd服務(wù)-->
[root@centos02 ~]# ssh -p 2222 root@192.168.100.10   <!--客戶端登錄ssh-->
root@192.168.100.10's password:     <!--輸入密碼-->
Last login: Mon Nov 11 19:20:28 2019 from 192.168.100.10
[root@centos01 ~]#      <!--成功登錄-->

2、scp遠(yuǎn)程復(fù)制

通過scp命令可以利用SSH安全連接與遠(yuǎn)程主機(jī)相互復(fù)制文件,使用scp命令時,除了必須指定復(fù)制源、目標(biāo)之外,還應(yīng)指定目標(biāo)主機(jī)地址、登錄用戶,執(zhí)行后根據(jù)提示輸入驗證口令即可。示例如下:

[root@centos02 ~]# scp
root@192.168.100.10:/etc/ssh/sshd_config ./ 
     <!--將遠(yuǎn)程主機(jī)數(shù)據(jù)復(fù)制到本地數(shù)據(jù),保存在當(dāng)前位置-->
root@192.168.100.10's password:   <!--輸入密碼-->
sshd_config          100% 3910   3.6MB/s  00:00  
[root@centos02 ~]# scp -r ./sshd_config
root@192.168.100.10:/opt   
     <!--將本地數(shù)據(jù)上傳到遠(yuǎn)程主機(jī)目錄的opt中-->
root@192.168.100.10's password:   <!--輸入密碼-->
sshd_config          100% 3910   1.2MB/s  00:00  

3、sftp安裝FTP

通過sftp命令可以利用SSH安全連接與遠(yuǎn)程主機(jī)上傳、下載文件,采用了與FTP類似的登錄過程和交互環(huán)境,便于目錄資源管理。示例如下:

[root@centos01 ~]# cd /opt/    <!--進(jìn)入opt目錄-->
[root@centos01 opt]# sftp root@192.168.100.20  <!--登錄sftp-->
root@192.168.100.20's password:   <!--輸入密碼-->
Connected to 192.168.100.20.
sftp> pwd    <!--查看客戶端登錄sftp的位置默認(rèn)在宿主目錄-->
Remote working directory: /root
sftp> put sshd_config    <!--上傳數(shù)據(jù)到遠(yuǎn)程主機(jī)-->
Uploading sshd_config to /root/sshd_config
sshd_config          100% 3910   6.4MB/s  00:00  
sftp> get sshd_config     <!--下載數(shù)據(jù)到本地-->
Fetching /root/sshd_config to sshd_config
/root/sshd_config       100% 3910   3.6MB/s  00:00  
sftp> exit         <!--退出登錄-->

三、構(gòu)建密鑰對驗證的SSH體系

密鑰對驗證方式可以遠(yuǎn)程登錄提供更好的安全性。在Linux服務(wù)器、客戶端中構(gòu)建密鑰對驗證SSH體系的基本過程。如下圖所示,整個過程包括四步,首先要在SSH客戶端以zhangsan用戶身份創(chuàng)建密鑰對,并且要將創(chuàng)建的公鑰文件上傳至SSH服務(wù)器端,然后要將公鑰信息導(dǎo)入服務(wù)器端的目標(biāo)用戶lisi的公鑰數(shù)據(jù)庫,最后以服務(wù)器端用戶lisi的身份登錄驗證。

Centos 7.4中的遠(yuǎn)程訪問控制的實現(xiàn)方法

1、在客戶端創(chuàng)建密鑰對

在客戶端中,通過ssh-keygen工具為當(dāng)前用戶創(chuàng)建密鑰對文件。可用的加密算法為ECDSA或DSA(ssh-keygen命令的“-t”選項用于指定算法類型)。示例如下:

[root@centos02 ~]# ssh-keygen -t dsa   <!--創(chuàng)建密鑰對-->
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):  <!--指定私鑰位置-->
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <!--設(shè)置私鑰短語-->
Enter same passphrase again:    <!--確認(rèn)所設(shè)置的短語-->
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:zv0EdqIuOfwSovN2Dkij08y9wZ0f1+IyhY7LFNKKzkk root@centos02
The key's randomart image is:
+---[DSA 1024]----+
|         |
|         |
|         |
|   .      |
| o . o S.+ .  |
| * *.+.=.+.=   |
|o E.*o+==.+ o  |
| =o..*Oo++ +   |
| ++oo+*+o. .  |
+----[SHA256]-----+
[root@centos02 ~]# ls -lh ~/.ssh/id_dsa* <!--確認(rèn)生成的密鑰文件-->
-rw------- 1 root root 668 11月 12 16:11 /root/.ssh/id_dsa
-rw-r--r-- 1 root root 603 11月 12 16:11 /root/.ssh/id_dsa.pub

新生成的密鑰對文件中,id_das是私鑰文件,權(quán)限默認(rèn)為600,對于私鑰文件必須妥善保管,不能泄露給他人;id_dsa.pub是公鑰文件,用來提供給ssh服務(wù)器。

2、將公鑰文件上傳至服務(wù)器

將上一步生成的公鑰文件上傳至服務(wù)器,并部署到服務(wù)器端用戶的公鑰數(shù)據(jù)庫中。上傳公鑰文件時可以選擇SCP、FTP、HTTP甚至發(fā)送E-mail等任何方式。

root@centos02 ~]# ssh-copy-id -i ./.ssh/id_dsa.pub 
root@192.168.100.10 <!--將公鑰文件上傳至服務(wù)器并導(dǎo)入公鑰文本-->
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "./.ssh/id_dsa.pub"
The authenticity of host '192.168.100.10 (192.168.100.10)' can't be established.
ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.
ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.
Are you sure you want to continue connecting (yes/no)? yes  <!--輸入yes-->
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.100.10's password:   <!--輸入密碼-->

Number of key(s) added: 1

Now try logging into the machine, with:  "ssh 'root@192.168.100.10'"
and check to make sure that only the key(s) you wanted were added.

3、在客戶端使用密鑰對驗證

當(dāng)私鑰文件(客戶端)、公鑰文件(服務(wù)器)均部署到位以后,就可以在客戶端中進(jìn)行測試了。首先確認(rèn)客戶端中當(dāng)前的用戶為root,然后通過ssh命令以服務(wù)器端用戶root的身份進(jìn)行遠(yuǎn)程登錄。如果密鑰對驗證方式配置成功,則在客戶端將會要求輸入私鑰短語,以便調(diào)用私鑰文件進(jìn)行匹配(若未設(shè)置私鑰短語,則直接登入目標(biāo)服務(wù)器)。

[root@centos02 ~]# ssh root@192.168.100.10   <!--登錄ssh服務(wù)器-->
Last login: Tue Nov 12 16:03:56 2019 from 192.168.100.254
[root@centos01 ~]# who  <!--登錄成功服務(wù)器,查看都有哪些用戶-->
root   pts/0    2019-11-12 17:35 (192.168.100.20)
root   pts/2    2019-11-12 16:03 (192.168.100.254)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI