SSH 為 Secure Shell 的縮寫,由 IETF 的網路工作小組(Network Working Group)所制定;SSH 為建立在應用程式層和傳輸層基礎上的安全性通訊協定。
傳統的網路服務程式,如FTP、POP和Telnet其本質上都是不安全的;因為它們在網路上用明文傳送資料、使用者帳號和使用者口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。就是存在另一個人或者一台機器冒充真正的伺服器接收使用者傳給伺服器的資料,然後再冒充使用者把資料傳給真正的伺服器。
而 SSH 是目前較可靠,專為遠程登入工作階段和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠端管理過程中的資訊泄露問題。透過 SSH 可以對所有傳輸的資料進行加密,也能夠防止 DNS 欺騙和 IP 欺騙。
系統及版本:CentOS release 5.3 (Final)
安裝SSH
yum install ssh
啟動SSH
service sshd start
設定開機運行
chkconfig sshd on
SSH相關設定檔的修改
首先修改SSH的設定檔。如下:
[root@sample ~]# vi /etc/ssh/sshd_config ← 用vi開啟SSH的設定檔
#Protocol 2,1 ← 找到此行將行頭“#”刪除,再將行末的“,1”刪除,只允許SSH2方式的串連
Protocol 2 ← 修改後變為此狀態,僅使用SSH2
#ServerKeyBits 768 ← 找到這一行,將行首的“#”去掉,並將768改為1024
ServerKeyBits 1024 ← 修改後變為此狀態,將ServerKey強度改為1024位元
#PermitRootLogin yes ← 找到這一行,將行首的“#”去掉,並將yes改為no
PermitRootLogin no ← 修改後變為此狀態,不允許用root進行登入
#PasswordAuthentication yes ← 找到這一行,將yes改為no
PasswordAuthentication no ← 修改後變為此狀態,不允許密碼方式的登入
#PermitEmptyPasswords no ← 找到此行將行頭的“#”刪除,不允許空密碼登入
PermitEmptyPasswords no ← 修改後變為此狀態,禁止空密碼進行登入
然後儲存並退出。(vi儲存退出的命令為ZZ)
因為我們只想讓SSH服務為管理系統提供方便,所以在不通過外網遠端管理系統的情況下,只允許內網用戶端通過SSH登入到伺服器,以最大限度減少不安全因素。設定方法如下:
[root@sample ~]# vi /etc/hosts.deny ← 修改屏蔽規則,在文尾添加相應行
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
sshd: ALL ← 添加這一行,屏蔽來自所有的SSH串連請求
[root@sample ~]# vi /etc/hosts.allow ← 修改允許規則,在文尾添加相應行
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
sshd: 192.168.0. ← 添加這一行,只允許來自內網的SSH串連請求
netstat -tunlp 查看正在啟動並執行連接埠號碼!vim /etc/ssh/sshd_config這個檔案,這裡把#Port 22這個欄位前面的#去掉,再把22改成自己要設的連接埠就行了,然後重啟ssh服務。/etc/init.d/sshd restart 假如要限制SSH登陸的IP,那麼可以如下做:修改/etc/hosts.deny,在其中加入sshd:ALL修改:/etc/hosts.allow,在其中進行如下設定:sshd:192.168.0.24這樣就可以限制只有192.168.0.241的IP通過SSH登陸上LINUX機器了
SSH遠端連線配置
1.配置IP
#setup
選擇 NetWork configuration
選擇 Device configuration
選擇 eth0
Use DHCP [*] 改 為 [ ] 用空格鍵將*去除
Static IP 輸入 192.168.1.112
Netmask 輸入 255.255.255.0
Default gateway IP 輸入 192.168.1.1
Primary DNS Server 輸入 192.168.1.1
2.改SSH連接埠
vim /etc/ssh/sshd_config
#Port 22
去#注釋 改 22 為 2200(2000以上)
3.重啟SSH
/etc/init.d/sshd restart
4.重啟網路
service network restart
或
/etc/init.d/network restart
5.查看連接埠
netstat -lnp|more
6.關防火牆
/etc/init.d/iptables stop
啟動SSH
/etc/init.d/sshd start
至此SSH已經可以串連了
輸入串連IP
配置相關參數
選擇utf-8支援中文顯示
自動輸入登入使用者root
輸入使用者名稱後就可以串連到伺服器
但是目前我們的SSH串連還需要輸入密碼,下面將介紹使用密鑰進行串連,免去了輸入密碼的煩惱:
1、在被管理機上生產密鑰
[root@localhost ~]# mkdir /root/.ssh
[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. ##如果在這裡報錯是因為SeLinux引起的按照Policy:yum install selinux-policy
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
aa:76:71:1e:51:fe:3b:4c:51:30:b2:90:55:e9:58:7c root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| .ooo+o |
| ...o+.E |
| o.+ o |
| . o o |
| S. . . |
| ..o o |
| .+ . o . |
| ... . + |
| ... . |
+-----------------+
2、putty生產密鑰
開啟puttygen,如果沒有該程式可以到putty官方網站下載。
點擊Generate按鈕後出現下圖,在紅框中不斷移動滑鼠知道密鑰產生完成
點擊Generate按鈕後出現下圖,在紅框中不斷移動滑鼠知道密鑰產生完成
上面的大紅框就是我們產生的公開金鑰、這個公開金鑰用於放在被管理伺服器上,而私密金鑰放在自己的機器上。
Key comment是一個備忘資訊,如果是企業環境那麼會有很多的公開金鑰在一台機器上,為了識別的話一般都會根據每個人的自己定義一個備忘。
可以使用郵箱或者工號,輸入Key comment先複製下公開金鑰,並點擊Saved public Key 和 Saved Private Key儲存兩個密鑰
接著開啟密鑰代理工具pageant.exe(同樣可以在putty的官網下載),使用pageant.exe有一個很大的好處,如果你還需要使用putty的其他工具那麼他們可以共用密鑰驗證,而不需要反覆去設定密鑰。
工作列的pageant.exe表徵圖右鍵選擇view keys開啟下面視窗。
點擊Add key添加剛才儲存的私密金鑰。
3、被管理機密鑰部署
將被管理機上剛才生產的id_rsa.pub複製成authrized.keys
[root@localhost .ssh]# cp id_rsa.pub authrized.keys
[root@localhost .ssh]# chmod 600 authrized.keys ##這一步是必須的,否則串連不上修改vi /root/.ssh/authrized.keys 刪除原來的密鑰,添加puttygen.exe生產的密鑰(也就是前面複製的公開金鑰)
sh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAh+gDpVSNIwBHZvmHS240AoueNHIgDHhczQ/fhiN/IdAQVdh7Ovw2pnJ4sd6so0kqCizsU7FOu2rvaK7vHC3QrrYmeqn94V595pYGLnMCbtEd7ONew47TU8wjtdldbc7liEmkTVIdkCbbrzQa372/u2LSjkldu2BUiXkevlnGNUc= hellwen.wu
~
~
~
~儲存退出。
4、開啟putty登入
注意看上圖中紅色部分,如果你是經常串連這台機器的話建議輸入IP並配置要後再Saved Sessions裡輸入識別名稱並點擊儲存按鈕,這樣在列表框中就會長期保留該伺服器的串連配置。