1、查看SSH客戶端版本
有的時(shí)候需要確認(rèn)一下SSH客戶端及其相應(yīng)的版本號(hào)。使用ssh -V命令可以得到版本號(hào)。需要注意的是,Linux一般自帶的是OpenSSH: 下面的例子即表明該系統(tǒng)正在使用OpenSSH:
1
2
|
$ ssh -V OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003 |
下面的例子表明該系統(tǒng)正在使用SSH2:
1
2
|
$ ssh -V ssh : SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu |
2、連接到遠(yuǎn)程主機(jī):
命令格式 :
1
2
|
ssh name@remoteserver #或者 ssh remoteserver -l name |
說明:以上兩種方式都可以遠(yuǎn)程登錄到遠(yuǎn)程主機(jī),server代表遠(yuǎn)程主機(jī),name為登錄遠(yuǎn)程主機(jī)的用戶名。
3、連接到遠(yuǎn)程主機(jī)指定的端口:
命令格式:
1
2
|
ssh name@remoteserver -p 2222 #或者 ssh remoteserver -l name -p 2222 |
說明:p 參數(shù)指定端口號(hào),通常在路由里做端口映射時(shí),我們不會(huì)把22端口直接映射出去,而是轉(zhuǎn)換成其他端口號(hào),這時(shí)就需要使用-p端口號(hào)命令格式。
4、通過遠(yuǎn)程主機(jī)1跳到遠(yuǎn)程主機(jī)2:
命令格式:
1
|
ssh -t remoteserver1 ssh remoteserver2 |
說明:當(dāng)遠(yuǎn)程主機(jī)remoteserver2無法直接到達(dá)時(shí),可以使用-t參數(shù),然后由remoteserver1跳轉(zhuǎn)到remoteserver2。在此過程中要先輸入remoteserver1的密碼,然后再輸入remoteserver2的密碼,然后就可以操作remoteserver2了。
5、通過SSH運(yùn)行遠(yuǎn)程shell命令:
命令格式:
1
|
ssh -l name remoteserver ‘ command ' |
說明:連接到遠(yuǎn)程主機(jī),并執(zhí)行遠(yuǎn)程主機(jī)的command命令。例如:查看遠(yuǎn)程主機(jī)的內(nèi)存使用情況。
1
|
$ ssh -l root 192.168.1.100 svmon -G |
6、修改SSH監(jiān)聽端口:
默認(rèn)情況下,SSH監(jiān)聽連接端口22,攻擊者使用端口掃描軟件就可以看到主機(jī)是否運(yùn)行有SSH服務(wù),將SSH端口修改為大于1024的端口是一個(gè)明智的選擇,因?yàn)榇蠖鄶?shù)端口掃描軟件(包括nmap)默認(rèn)情況都不掃描高位端口。打開/etc/ssh/sshd_config文件并查找下面這樣的行:
Port 22
去掉該行前面的# 號(hào),然后修改端口號(hào)并重新啟動(dòng)SSH服務(wù):
1
|
$ /etc/init .d /ssh restart |
7、僅允許SSH協(xié)議版本2:
有兩個(gè)SSH協(xié)議版本,僅使用SSH協(xié)議版本2會(huì)更安全,SSH協(xié)議版本1有安全問題,包括中間人攻擊(man-in-the-middle)和注入(insertion)攻擊。編輯/etc/ssh/sshd_config文件并查找下面這樣的行:
1
2
3
|
# Protocol 2,1 修改為 Protocol 2 |
8、禁止root用戶登錄:
通常情況下,不采用直接用root用戶登錄到遠(yuǎn)程主機(jī),由于root用戶擁有超級(jí)權(quán)限,這樣會(huì)帶來安全隱患,所以,一般我們用普通用戶登錄,當(dāng)需要管理遠(yuǎn)程主機(jī)時(shí),再切換到root用戶下。打開/etc/ssh/sshd_config文件并查找下面這樣的行:
1
|
#PermitRootLogin yes |
將#號(hào)去掉,然后將yes修改成no,重啟ssh服務(wù),這樣就可以禁止root用戶登錄。
將#號(hào)去掉,然后將bannertest.txt文件的全路徑替換/some/path,然后保存,重啟ssh服務(wù)。當(dāng)客戶端登錄時(shí),就會(huì)看到bannertest.txt文件中的提示信息。
9、進(jìn)行端口映射:
假如公司內(nèi)網(wǎng)有臺(tái)web服務(wù)器,但是只對(duì)內(nèi)不對(duì)外,這樣,外網(wǎng)就無法訪問,可以用ssh進(jìn)行端口映射來實(shí)現(xiàn)外網(wǎng)訪問內(nèi)網(wǎng)的web服務(wù)器。假如web服務(wù)器名為webserver,webserver可以用ssh訪問到遠(yuǎn)端主機(jī)remoteserver,登錄到webserver,然后用下面命令進(jìn)行映射
命令格式:
1
|
ssh -R 3000:localhost:80 remoteserver |
執(zhí)行完成后,在remoteserver機(jī)器上,執(zhí)行netstat -an | grep 3000,查看有沒有開通3000端口。并執(zhí)行以下命令觀察是否可以打開webserver上的網(wǎng)頁
1
|
$ w3m http: //127 .0.0.1:3000 |
如果能打開界面,說明映射成功.但是,這只限于本機(jī)訪問web服務(wù)器,即只能remoteserver機(jī)器訪問webserver。因?yàn)?000端口綁定的是remoteserver機(jī)器的127.0.0.1端口。可以編輯remoteserver機(jī)器上的/etc/ssh/sshd_config文件并添加如下內(nèi)容:
添加 GatewayPorts yes 內(nèi)容,把監(jiān)聽端口3000綁定到 0.0.0.0 地址上,這樣外部的所有機(jī)器都能訪問到這個(gè)監(jiān)聽端口,然后保存退出。并重啟ssh服務(wù)。完成后其它機(jī)器就可以在瀏覽器中輸入 http://remoteserver:3000來訪問webserver了。
10、設(shè)置登錄時(shí)提示信息
首先編輯一個(gè)文件,如bannertest.txt,文件內(nèi)容自行定義。然后打開/etc/ssh/sshd_config文件并查找下面這樣的行:
1
|
#Banner /some/path |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://www.cnblogs.com/binyue/p/4666701.html