詳解Linux中SSH遠程訪問控制

原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://dengqi.blog.51cto.com/5685776/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服務器。



本文出自 “鄧奇的Blog” 博客,請務必保留此出處http://dengqi.blog.51cto.com/5685776/1260038

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章