ssh常用用法小結(jié)
在我們?nèi)粘5墓ぷ髦校?jīng)常涉及到維護(hù)服務(wù)器更振,那么為了方便操作,以及安全方面的考慮饭尝,通常我們都會(huì)在服務(wù)器上安裝ssh服務(wù)端肯腕,這樣,在我們自己的機(jī)器上通過(guò)ssh客戶端工具連接到服務(wù)器芋肠,既方便又安全乎芳。下面說(shuō)說(shuō)ssh應(yīng)用的基本功能。
www.2cto.com
1帖池、連接到遠(yuǎn)程主機(jī):
命令格式 :
ssh name@remoteserver 或者
ssh remoteserver -l name
說(shuō)明:以上兩種方式都可以遠(yuǎn)程登錄到遠(yuǎn)程主機(jī)奈惑,server代表遠(yuǎn)程主機(jī),name為登錄遠(yuǎn)程主機(jī)的用戶名睡汹。
2肴甸、連接到遠(yuǎn)程主機(jī)指定的端口:
命令格式:
ssh name@remoteserver -p 2222 或者
ssh remoteserver -l name –p 2222
說(shuō)明:p 參數(shù)指定端口號(hào),通常在路由里做端口映射時(shí)囚巴,我們不會(huì)把22端口直接映射出去原在,而是轉(zhuǎn)換成其他端口號(hào)友扰,這時(shí)就需要使用-p 端口號(hào)命令格式。
3庶柿、通過(guò)遠(yuǎn)程主機(jī)1跳到遠(yuǎn)程主機(jī)2:
命令格式:
ssh -t remoteserver1 ssh remoteserver2
說(shuō)明:當(dāng)遠(yuǎn)程主機(jī)remoteserver2無(wú)法直接到達(dá)時(shí)村怪,可以使用-t參數(shù),然后由remoteserver1跳轉(zhuǎn)到remoteserver2浮庐。在此過(guò)程中要先輸入remoteserver1的密碼甚负,然后再輸入remoteserver2的密碼,然后就可以操作remoteserver2了审残。
4梭域、通過(guò)SSH運(yùn)行遠(yuǎn)程shell命令:
命令格式:
ssh -l name remoteserver ‘command’
說(shuō)明:連接到遠(yuǎn)程主機(jī),并執(zhí)行遠(yuǎn)程主機(jī)的command命令搅轿。例如:查看遠(yuǎn)程主機(jī)的內(nèi)存使用情況病涨。
$ ssh –l root 192.168.1.100 svmon –G
www.2cto.com
5、修改SSH監(jiān)聽(tīng)端口:
默認(rèn)情況下璧坟,SSH監(jiān)聽(tīng)連接端口22既穆,攻擊者使用端口掃描軟件就可以看到主機(jī)是否
運(yùn)行有SSH服務(wù),將SSH端口修改為大于1024的端口是一個(gè)明智的選擇沸柔,因?yàn)榇蠖鄶?shù)端口掃描軟件(包括nmap)默認(rèn)情況都不掃描高位端口循衰。打開(kāi)/etc/ssh/sshd_config文件并查找下面這樣的行:
Port ?22
去掉該行前面的# 號(hào),然后修改端口號(hào)并重新啟動(dòng)SSH服務(wù):
$ /etc/init.d/ssh restart
6褐澎、僅允許SSH協(xié)議版本2:
有兩個(gè)SSH協(xié)議版本,僅使用SSH協(xié)議版本2會(huì)更安全伐蒋,SSH協(xié)議版本1有安全問(wèn)
題工三,包括中間人攻擊(man-in-the-middle)和注入(insertion)攻擊。編輯/etc/ssh/sshd_config文件并查找下面這樣的行:
#Protocol 2,1
修改為
Protocol 2
7先鱼、禁止root用戶登錄:
通常情況下俭正,不采用直接用root用戶登錄到遠(yuǎn)程主機(jī),由于root用戶擁有超級(jí)權(quán)限焙畔,這樣會(huì)帶來(lái)安全隱患掸读,所以,一般我們用普通用戶登錄宏多,當(dāng)需要管理遠(yuǎn)程主機(jī)時(shí)儿惫,再切換到root用戶下。打開(kāi)/etc/ssh/sshd_config文件并查找下面這樣的行:
#PermitRootLogin yes
將#號(hào)去掉伸但,然后將yes修改成no肾请,重啟ssh服務(wù),這樣就可以禁止root用戶登錄更胖。
8铛铁、設(shè)置登錄時(shí)提示信息
首先編輯一個(gè)文件隔显,如bannertest.txt,文件內(nèi)容自行定義饵逐。然后打開(kāi)/etc/ssh/sshd_config文件并查找下面這樣的行:
#Banner /some/path
將#號(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)就無(wú)法訪問(wèn),可以用ssh進(jìn)行端口映射來(lái)實(shí)現(xiàn)外網(wǎng)訪問(wèn)內(nèi)網(wǎng)的web服務(wù)器廓奕。假如web服務(wù)器名為webserver抱婉,webserver可以用ssh訪問(wèn)到遠(yuǎn)端主機(jī)remoteserver,登錄到webserver桌粉,然后用下面命令進(jìn)行映射
命令格式:
ssh -R ?3000:localhost:80 ?remoteserver
執(zhí)行完成后蒸绩,在remoteserver機(jī)器上,執(zhí)行netstat -an|grep 3000,查看有沒(méi)有開(kāi)通3000端口铃肯。并執(zhí)行以下命令觀察是否可以打開(kāi)webserver上的網(wǎng)頁(yè)
$ w3m http://127.0.0.1:3000
如果能打開(kāi)界面患亿,說(shuō)明映射成功.但是,這只限于本機(jī)訪問(wèn)web服務(wù)器押逼,即只能remoteserver機(jī)器訪問(wèn)webserver步藕。因?yàn)?000端口綁定的是remoteserver機(jī)器的127.0.0.1端口√舾瘢可以編輯remoteserver機(jī)器上的/etc/ssh/sshd_config文件并添加如下內(nèi)容:
添加 GatewayPorts yes ?內(nèi)容咙冗,把監(jiān)聽(tīng)端口3000綁定到 0.0.0.0 地址上,這樣外部的所有機(jī)器都能訪問(wèn)到這個(gè)監(jiān)聽(tīng)端口,然后保存退出漂彤。并重啟ssh服務(wù)雾消。完成后其它機(jī)器就可以在瀏覽器中輸入 http://remoteserver:3000來(lái)訪問(wèn)webserver了。
10挫望、scp命令:
scp命令是SSH中最方便有用的命令立润,可以在兩臺(tái)服務(wù)器之間傳送文件。并且在傳輸過(guò)程中仍是使用ssh加密的士骤。
命令格式:
scp -p root@192.168.1.120:/tmp/test /bak
將遠(yuǎn)程主機(jī)的/tmp/test 文件復(fù)制到本地的/bak文件夾下
scp -p /bak/1234 root@192.168.1.120:/tmp
將本地/bak/1234 文件復(fù)制到遠(yuǎn)程主機(jī)的/tmp路徑下
ssh還有很多其他用法范删,例如sftp等,這里不在講述拷肌,有興趣可以從網(wǎng)上查些資料
=================================
ssh服務(wù)常見(jiàn)問(wèn)題總結(jié)
問(wèn)題一
ssh登錄的時(shí)候鏈接端口失敗
提示(1):
# ssh 172.16.81.221
ssh: connect to host 172.16.81.221 port 22: No route to host
這由于server端沒(méi)有開(kāi)機(jī)或是網(wǎng)絡(luò)不通(這個(gè)原因很多到旦,最簡(jiǎn)單的是網(wǎng)線沒(méi)有插旨巷。還有就是可能會(huì)是網(wǎng)卡down了等)
提示(2):
# ssh work@172.16.81.221
ssh: connect to host 172.16.81.221 port 22: Connection refused
這是由于對(duì)方server的ssh服務(wù)沒(méi)有開(kāi)。這個(gè)server端開(kāi)啟服務(wù)即可添忘。
問(wèn)題二
ssh到server上的時(shí)候密碼是對(duì)的但是報(bào)如下信息:
# ssh 172.16.81.221
root@172.16.81.221's password:
Permission denied, please try again.
這個(gè)是由于如果不輸入用戶名的時(shí)候默認(rèn)的是root用戶采呐,但是安全期間ssh服務(wù)默認(rèn)沒(méi)有開(kāi)root用戶的ssh權(quán)限
解決方法:
要修改root的ssh權(quán)限,即修改 /etc/ssh/sshd_config文件中
PermitRootLogin no 改為 PermitRootLogin yes
問(wèn)題三
登錄是出現(xiàn)如下提示:
ssh root@172.16.81.221
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
76:fb:b3:70:14:48:19:d6:29:f9:ba:42:46:be:fb:77.
Please contact your system administrator.
Add correct host key in /home/fante/.ssh/known_hosts to get rid of this
message.
Offending key in /home/fante/.ssh/known_hosts:68
RSA host key for 172.16.81.221 has changed and you have requested strict checking.
Host key verification failed.
server端密碼或是ip對(duì)應(yīng)的server等其他發(fā)生改變的時(shí)候搁骑。解決方法一般就需要?jiǎng)h除~/.ssh/known_hosts的對(duì)應(yīng)行斧吐,然后再登錄即可。
問(wèn)題四
如何通過(guò)ssh使用遠(yuǎn)程的圖形啟動(dòng)到本地仲器。
在本機(jī)執(zhí)行xhost +修改遠(yuǎn)端/etc/ssh/sshd_config文件煤率,X11Forwarding yes這一行為yes。重啟ssh服務(wù)乏冀。登錄時(shí)執(zhí)行ssh -X [遠(yuǎn)端IP]登錄之后執(zhí)行圖形配置工具可以在本機(jī)顯示 蝶糯。
=================================
ssh連接不上解決思路
近期因?yàn)榇罱ㄐ路螖?shù)較多,所以自己總結(jié)了一下在遇到 ssh連接不上時(shí)候的解決思路辆沦,供大家參考昼捍。大家如果有什么新的思路也可以一起討論一下 ~
以下的測(cè)試沒(méi)有特殊說(shuō)明均是使用普通賬號(hào)登陸
www.2cto.com
狀況一: ssh IP_A 或ssh root@IP_A 都顯示 Permission denied (publickey,gssapi-with-mic).
思路:可以檢查一下IP_A上面的SSH版本是否正確,線上服務(wù)器如果存在sshd路徑是/use/local/bin/sshd的肢扯,一定要升級(jí)sshd版本妒茬,正確的版本是/usr/sbin/sshd
狀況二: ssh IP_A顯示 Permission denied (publickey,gssapi-with-mic).但是ssh root@IP_A 成功
思路:可以檢查一下/etc/ssh/sshd_config,里面有一段AllowUsers,將User_name@IP_B[IP_B_HOSTNAME]寫(xiě)進(jìn)去蔚晨,然后再嘗試連接一下
狀況三: ssh IP_A總是需要密碼乍钻,但是ssh root@IP_A 成功(或也不成功,也需要密碼)
思路:可以檢查一下文件夾和.ssh/authorized_keys的權(quán)限铭腕,如果權(quán)限太大也會(huì)出問(wèn)題团赁。基本authorized_keys給740就可以了谨履。文件夾不僅僅是指.ssh,還需要注意一下/home/user熬丧,當(dāng)user文件夾的權(quán)限過(guò)大時(shí)也會(huì)出現(xiàn)問(wèn)題笋粟,這里需要注意一下
ssh -v root@IP_A ? (顯示debug信息,便于后續(xù)調(diào)試)
另外在實(shí)際中需要關(guān)注一下messlog析蝴,看一下里面有沒(méi)有報(bào)錯(cuò)信息
轉(zhuǎn)自http://www.2cto.com/os/201302/191304.html