SSH服務和Telnet服務一樣,通過遠程登錄登錄到系統(tǒng),在遠程操控系統(tǒng)。但它與Telnet的不同點就是:Telnet在傳輸?shù)倪^程中是平文傳輸,而SSH是將傳輸內容加密,在傳送的過程中保證了傳送內容的保密性,從而提高了系統(tǒng)的安全性。
在這里,我們不準備將SSH服務作為用戶上傳下載文件的工具。我們只用SSH服務的開通為遠程管理系統(tǒng)提供方便。另外在用戶認證方式上,為了服務器和用戶的安全,禁止用戶密碼的認證方式,而基于“鑰匙”的方式。
SSH相關配置文件的修改
首先修改SSH的配置文件。如下:
[root@sample~]#vi/etc/ssh/sshd_config ←用vi打開SSH的配置文件
#Protocol2,1 ←找到此行將行頭“#”刪除,再將行末的“,1”刪除,只允許SSH2方式的連接
↓
Protocol2 ←修改后變?yōu)榇藸顟B(tài),僅使用SSH2
#ServerKeyBits768 ←找到這一行,將行首的“#”去掉,并將768改為1024
↓
ServerKeyBits1024 ←修改后變?yōu)榇藸顟B(tài),將ServerKey強度改為1024比特
#PermitRootLoginyes ←找到這一行,將行首的“#”去掉,并將yes改為no
↓
PermitRootLoginno ←修改后變?yōu)榇藸顟B(tài),不允許用root進行登錄
#PasswordAuthenticationyes ←找到這一行,將yes改為no
↓
PasswordAuthenticationno ←修改后變?yōu)榇藸顟B(tài),不允許密碼方式的登錄
#PermitEmptyPasswordsno ←找到此行將行頭的“#”刪除,不允許空密碼登錄
↓
PermitEmptyPasswordsno ←修改后變?yōu)榇藸顟B(tài),禁止空密碼進行登錄
然后保存并退出。(vi保存退出的命令為ZZ)
因為我們只想讓SSH服務為管理系統(tǒng)提供方便,所以在不通過外網遠程管理系統(tǒng)的情況下,只允許內網客戶端通過SSH登錄到服務器,以最大限度減少不安全因素。設置方法如下:
[root@sample~]#vi/etc/hosts.deny ←修改屏蔽規(guī)則,在文尾添加相應行
#
#hosts.denyThisfiledescribesthenamesofthehostswhichare
#*not*allowedtousethelocalINETservices,asdecided
#bythe'/usr/sbin/tcpd'server.
#
#Theportmaplineisredundant,butitislefttoremindyouthat
#thenewsecureportmapuseshosts.denyandhosts.allow.Inparticular
#youshouldknowthatNFSusesportmap!
sshd:ALL ←添加這一行,屏蔽來自所有的SSH連接請求
[root@sample~]#vi/etc/hosts.allow ←修改允許規(guī)則,在文尾添加相應行
#
#hosts.allowThisfiledescribesthenamesofthehostswhichare
#allowedtousethelocalINETservices,asdecided
#bythe'/usr/sbin/tcpd'server.
#
sshd:192.168.0. ←添加這一行,只允許來自內網的SSH連接請求
重新啟動SSH服務
在修改完SSH的配置文件后,需要重新啟動SSH服務才能使新的設置生效。
[root@sample~]#/etc/rc.d/init.d/sshdrestart ←重新啟動SSH服務器
Stoppingsshd:[OK]
Startingsshd:[OK] ←SSH服務器重新啟動成功
這時,在遠程終端(自用PC等等)上,用SSH客戶端軟件以正常的密碼的方式是無法登錄服務器的。為了在客戶能夠登錄到服務器,我們接下來建立SSH用的公鑰與私鑰,以用于客戶端以“鑰匙”的方式登錄SSH服務器。
SSH2的公鑰與私鑰的建立
登錄為一個一般用戶,基于這個用戶建立公鑰與私鑰。(這里以centospub用戶為例)
[root@sample~]#su-centospub ←登錄為一般用戶centospub
[centospub@sample~]$ssh-keygen-trsa ←建立公鑰與私鑰
Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/home/kaz/.ssh/id_rsa): ←鑰匙的文件名,這里保持默認直接回車
Createddirectory'/home/kaz/.ssh'
Enterpassphrase(emptyfornopassphrase): ←輸入口令
Entersamepassphraseagain: ←再次輸入口令
Youridentificationhasbeensavedin/home/kaz/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/home/kaz/.ssh/id_rsa.pub.
Thekeyfingerprintis:
tf:rs:e3:7s:28:59:5s:93:fe:33:84:01:cj:65:3b:8ecentospub@sample.centospub.com
然后確認一下公鑰與密鑰的建立,以及對應于客戶端的一些處理。
[centospub@sample~]$cd~/.ssh ←進入用戶SSH配置文件的目錄
[centospub@sample.ssh]$ls-l ←列出文件
total16
-rw-------1centospubcentospub951Sep419:22id_rsa ←確認私鑰已被建立
-rw-r--r--1centospubcentospub241Sep419:22id_rsa.pub ←確認公鑰已被建立
[centospub@sample.ssh]$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys ←公鑰內容輸出到相應文件中
[centospub@sample.ssh]$rm-f~/.ssh/id_rsa.pub ←刪除原來的公鑰文件
[centospub@sample.ssh]$chmod400~/.ssh/authorized_keys ←將新建立的公鑰文件屬性設置為400
然后,將私鑰通過安全的方式轉移到欲通過SSH連接到服務器的PC上。這里,以通過3.5寸磁盤為介質為例:
centospub@sample.ssh]$exit ←退出一般用戶的登錄(返回root的登錄)
[root@sample~]#mount/mnt/floppy/ ←加載軟盤驅動器
[root@sample~]#mv/home/centospub/.ssh/id_rsa/mnt/floppy/ ←將剛剛建立的私鑰移動到軟盤
[root@sample~]#umount/mnt/floppy/ ←卸載軟盤驅動器
這樣,我們通過對應于centospub用戶的私鑰,就可以在遠程終端上通過SSH客戶端連接到服務器了。但服務器生成的私鑰匙不能被客戶端直接應用…詳細請見下一節(jié)。 本文出自:億恩科技【mszdt.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]
|