(轉)詳解Linux中SSH遠程訪問控制


詳解Linux中SSH遠程訪問控制

原文:http://blog.51cto.com/dengqi/1260038

SSH:是一種安全通道協議,主要用來實現字符界面的遠程登錄,遠程復制等功能(使用TCP的22號端口)。SSH協議對通信雙方的數據傳輸進行了加密處理,其中包括用戶登錄時輸入的用戶口令。

在RHEL 5系統中使用的是OpenSSH服務器由openssh,openssh-server等軟件包提供的(默認已經安裝),並以將sshd添加為標准的系統服務。

SSH提供一下兩種方式的登錄驗證:

1、密碼驗證:以服務器中本地系統用戶的登錄名稱,密碼進行驗證。

2、秘鑰對驗證:要求提供相匹配的秘鑰信息才能通過驗證。通常先在客戶機中創建一對秘鑰文件(公鑰和私鑰),然后將公鑰文件放到服務器中的指定位置。

注意:當密碼驗證和私鑰驗證都啟用時,服務器將優先使用秘鑰驗證。

SSH的配置文件:

sshd服務的配置文件默認在/etc/ssh/sshd_config,正確調整相關配置項,可以進一步提高sshd遠程登錄的安全性。

配置文件的內容可以分為以下三個部分:

1、常見SSH服務器監聽的選項如下:

Port 22                    //監聽的端口為22

Protocol 2                //使用SSH V2協議

ListenAdderss 0.0.0.0    //監聽的地址為所有地址

UseDNS no                //禁止DNS反向解析

2、常見用戶登錄控制選項如下:

PermitRootLogin no            //禁止root用戶登錄

PermitEmptyPasswords no        //禁止空密碼用戶登錄

LoginGraceTime 2m            //登錄驗證時間為2分鍾

MaxAuthTries 6                //最大重試次數為6

AllowUsers user            //只允許user用戶登錄,與DenyUsers選項相反

3、常見登錄驗證方式如下:

PasswordAuthentication yes                //啟用密碼驗證

PubkeyAuthentication yes                    //啟用秘鑰驗證

AuthorsizedKeysFile .ssh/authorized_keys    //指定公鑰數據庫文件

 

SSH客戶端命令程序ssh、scp、sftp

通過ssh命令可以遠程登錄到sshd服務,為用戶提供一個安全的Shell環境,一遍對服務器進行管理和維護。使用時指定登錄用戶名,目標主機作為參數。如下:150721973.jpg

當用戶第一次登錄SSH服務器時,必須接受服務器發來的RSA秘鑰(根據輸入yes)后才能繼續。接受的秘鑰信息將保存到“~/.ssh/known_hosts”文件中。如果默認端口被更改,可以使用-p命令制定端口。

通過scp命令可以利用SSH安全連接與遠程主機互相復制文件。使用scp命令時,除了必須制定復制源,目標以外,還應制定目標主機地址,登錄用戶,執行后提示驗證口令等。如下:

復制某文件到SSH服務器上

151351270.jpg

下載SSH服務器上的某個文件到本地151517261.jpg

通過sftp命令可以利用SSH安全連接與遠程主機上傳,下載文件,采用了與FTP類似的登錄過程和交互式環境,便於目錄資源管理。如下:

使用sftp命令通過SSH安全連接登錄遠程服務器

151952383.jpg

如果客戶端是windows系統,那么我們可以使用一些圖形化的工具來訪問Linux服務器。常見的一些圖形化工具有PuTTY,WinSCP等工具,具體如何使用請各位自行研究。

 

下面我們來詳細講解如何構建秘鑰對驗證的SSH體系

如下圖所示:簡單描述了構建秘鑰對驗證的基本過程。

152740419.jpg

根據上圖所示,我們分四步來構建秘鑰對驗證的SSH。

1、在SSH客戶機創建用戶秘鑰對。

如下:為test用戶創建秘鑰對。

153257837.jpg

上圖命令中:-t用於指定算法類型,rsa表示使用rsa算法。

秘鑰短語用來對私鑰文進行保護,當使用私鑰驗證登陸時必須提供此處所設置的短語。

秘鑰對默認保存在用戶宿主目錄下的.ssh/目錄下。

2、將公鑰上傳至SSH服務器

將公鑰上傳至SSH服務器的方式有很多,可以使用U盤拷貝,也可以使用ftp、共享等方式上傳。在此我們使用剛講過的scp命令上傳公鑰文件。

154053624.jpg

3、在SSH服務器中導入公鑰文本

在服務器中,目標用戶(用來遠程登錄的用戶)的公鑰數據庫位於~/.ssh/目錄下,默認文件名是authorized_keys。如下:將test的公鑰文件導入到user用戶的公鑰數據庫中。

154535125.jpg

4、此時在客戶端就可以使用秘鑰對驗證了。

154735452.jpg

此時需要用戶輸入創建秘鑰對時輸入的秘鑰短語,而不需要知道用戶的密碼即可登錄SSH服務器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM