在RHEL5下搭建SSH遠程登錄服務器

SSH(Secure SHell, 安全命令解釋器)是目前比較流行和實用的遠程登錄方式,通過SSH協議可以有效防止遠程管理過程中的信息泄露問題。本文將以實例說明如何在Linux系統中構建SSH遠程登錄服務器。以下是本次實驗的拓撲圖:
要求如下
1.在Web服務器上啓用OpenSSH服務,使用端口號爲3000,允許網站管理員webmaster從任何客戶端遠程登錄Web服務器,允許用戶xiangxiang只能從Linux客戶端遠程登錄Web服務器。
2.分別使用密碼驗證和密鑰對(證書)驗證方式遠程登錄服務器。
3.在Windows客戶端使用PuTTY、WinSCP工具實現遠程服務。
 
步驟如下:
一.SSH服務器的配置
在RHEL5系統中,OpenSSH服務器和客戶端的相關軟件包是默認安裝的,並已將sshd服務添加爲標準的系統服務,因此,只需要在Web服務器中執行“service sshd start”就可以開啓默認配置sshd服務,包括root在內的大部分用戶(只要有能執行命令的有效shell)都可以遠程登錄系統。但這樣做並不安全,我們需要修改配置文件(位於/etc/ssh/sshd_config),允許指定的用戶來訪問SSH服務器:
 
1.開啓sshd服務
 
#service  sshd  start
 
2.修改配置文件,允許允許網站管理員webmaster從任何客戶端遠程登錄Web服務器,允許用戶xiangxiang只能從Linux客戶端(192.168.0.77)遠程登錄Web服務器,SSH默認監聽的端口號22,修改爲3000,以提高安全性
 
#vi /etc/ssh/sshd_config    
Port   3000        //修改監聽端口號爲3000,默認爲22
ListenAddress 192.168.0.66     //只在Web服務器上提供服務
PermitRootLogin   no         //禁止root用戶遠程登錄
PermitEmptyPassword   no     //禁止空密碼用戶登錄
LoginGraceTime   1m              //登錄驗證過程時間爲1分鐘
MaxAuthTries   3                  //允許用戶登錄驗證最大重試次數爲3次
PasswordAuthentication    yes    //允許使用密碼驗證
AllowUsers    webmaster    [email protected]     //此項需要手動添加,允許webmaster用戶可以從任何客戶端登錄,允許用戶xiangxiang只能從192.168.0.77客戶機登錄,其他用戶均拒絕
 
【注】當root用戶被禁止登錄時,可以先使用普通賬號遠程進入系統,在需要執行管理任務時再使用“su -”的方式切換爲root,或者在服務器配置sudo以執行部分管理命令,這樣以提高系統的安全性。
 
3.創建允許遠程登錄Web服務器的用戶
 
#useradd webmaster
#useradd xiangxiang
#passwd webmaster
#passwd xiangxiang
 
4.重新啓動sshd服務,接下來就可以在客戶端使用密碼驗證方式遠程登錄Web服務器:
#service sshd restart
 
二.客戶端使用SSH方式登錄Web服務器
 
1.驗證webmaster從Linux客戶端(192.168.0.77)SSH遠程登錄Web服務器:(可以登錄)
 
 
2.驗證xiangxiang從Linux客戶端(192.168.0.77)SSH遠程登錄Web服務器:(可以登錄)
 
 
3.驗證webmaster和xiangxiang從Windows客戶端(192.168.0.77)SSH遠程登錄Web服務器
 
 
用戶webmaster登錄成功!
 
拒絕用戶xiangxiang從除192.168.0.77之外的客戶端登錄!
 
三.配置使用密鑰對(證書)方式遠程登錄Web服務器:
 
1.在Web服務器調整/etc/ssh/sshd_config配置文件,配置使用密鑰對驗證方式登錄
 
#vi /etc/ssh/sshd_config
PasswordAuthentication    no   //禁止使用密碼驗證方式
PubkeyAuthentication    yes    //使用密鑰對(證書)方式進行登錄驗證
AuthorizedKeysFile     ./ssh/authorized_keys  //指定保存各用戶公鑰內容的數據文件位置
 
2.重新啓動sshd服務
 
#service sshd restart
 
3.在客戶端(192.168.0.77)創建密鑰對
 
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  //直接回車
Enter passphrase (empty for no passphrase):    //設置保護私鑰文件的密碼
Enter same passphrase again:    //再次輸入保護私鑰文件的密碼
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
33:ee:01:7d:c3:74:83:13:ef:67:ee:d7:60:2d:e1:16 root@localhost
[root@localhost ~]# ll -a .ssh/
總計 24
drwxrwxrwx    2 root root 4096 10-08 19:29 .
drwxr-x--- 21 root root 4096 10-08 19:25 ..
-rw-------    1 root root 1743 10-08 19:29 id_rsa  //創建的私鑰
-rw-r--r--    1 root root    396 10-08 19:29 id_rsa.pub  //創建的公鑰
-rw-r--r--    1 root root    790 2015-11-04 known_hosts
 
4.上傳公鑰文件到Web服務器:(可以通過FTP,Samba,HTTP,SCP等方式上傳)
 
[root@localhost ~]# scp -P 3000 .ssh/id_rsa.pub [email protected]:/home/webmaster
Address 192.168.0.66 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
[email protected]'s password:    
id_rsa.pub                          100%    396         0.4KB/s     00:00
 
查看公鑰文件是否上傳成功:(成功!)
 
 
在Web服務器端(SSH服務器),將公鑰文件的內容添加至用戶webmaster、xiangxiang授權密鑰庫:
 
[root@linux5234 ~]# mkdir -p /home/webmaster/.ssh
[root@linux5234 ~]# mkdir -p /home/xiangxiang/.ssh
[root@linux5234 ~]# cat /home/webmaster/id_rsa.pub >> /home/webmaster/.ssh/authorized_keys
[root@linux5234 ~]# cat /home/webmaster/id_rsa.pub >> /home/xiangxiang/.ssh/authorized_keys
[root@linux5234 ~]# ls -l /home/webmaster/.ssh/authorized_keys    
-rw-r--r-- 1 root root 396 10-08 19:56 /home/webmaster/.ssh/authorized_keys
[root@linux5234 ~]# ls -l /home/xiangxiang/.ssh/authorized_keys    
-rw-r--r-- 1 root root 396 10-08 19:57 /home/xiangxiang/.ssh/authorized_keys
 
四.在Linux客戶端以密鑰對(證書)驗證方式登錄SSH服務器:
 
1.以root用戶登錄客戶端系統,執行ssh命令,以用戶webmaster遠程登錄SSH服務器
 
 
2.以root用戶登錄客戶端系統,執行ssh命令,以用戶xiangxiang遠程登錄SSH服務器
 
 
 
3.以其它普通用戶(tom)登錄客戶端系統,執行ssh命令,以用戶webmaster遠程登錄SSH服務器
 
[root@localhost ~]# useradd tom
[root@localhost ~]# mkdir -p /home/tom/.ssh
[root@localhost ~]# cp .ssh/id_rsa /home/tom/.ssh/
[root@localhost ~]# chown tom.tom /home/tom/.ssh/id_rsa    
[root@localhost ~]# ll /home/tom/.ssh/id_rsa    
-rw------- 1 tom tom 1743 10-08 20:22 /home/tom/.ssh/id_rsa
 
登錄:
[root@localhost ~]# su - tom
[tom@localhost ~]$ ssh -p 3000 [email protected]
The authenticity of host '192.168.0.66 (192.168.0.66)' can't be established.
RSA key fingerprint is 6f:ef:59:01:b4:cf:73:36:03:42:88:94:73:82:52:43.
Are you sure you want to continue connecting (yes/no)? yes            
Failed to add the host to the list of known hosts (/home/tom/.ssh/known_hosts).
Address 192.168.0.66 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Enter passphrase for key '/home/tom/.ssh/id_rsa':      
Last login: Fri Oct    8 20:03:36 2010 from 192.168.0.77
[webmaster@linux5234 ~]$    
 
五.在Windows客戶端使用Putty、WinSCP以密鑰對(證書)驗證方式登錄SSH服務器:
 
1.使用FTP或其他方法從Linux客戶端導出私鑰至Windows客戶端(步驟略)。
 
2.使用PUTTYGEN工具導入私鑰文件並轉換成.ppk格式的私鑰:
 
 
 
 
3.使用Putty登錄:
 
 
 
 
4.使用WinSCP工具遠程登錄SSH服務器(需要先在客戶端安裝WinSCP軟件),以安全的方式上傳和下載文件:
 
安裝好WinSCP後,打開程序,看到以下界面:
 
 
 
 
 
通過以上的配置,我們可以很方便遠程登錄Linux各種服務器,實現安全便捷的管理!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章