1. 程式人生 > >ssh命令 遠程登錄

ssh命令 遠程登錄

內存使用情況 span 實現 port config文件 沒有 shel version 軟件

11、查看SSH客戶端版本、查看SSH客戶端版本

查詢SSH客戶端及其相應的版本號。使用ssh -V命令可以得到版本號。需要註意的是,Linux一般自帶的是OpenSSH:

表明該系統正在使用OpenSSH:

$ ssh -V

OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003

表明該系統正在使用SSH:

$ ssh -V

ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu

2、連接到遠程主機:

命令格式 :

ssh name@remoteserver (常用)

或者

ssh remoteserver -l name

說明:以上兩種方式都可以遠程登錄到遠程主機,server代表遠程主機,name為登錄遠程主機的用戶名。

3、連接到遠程主機指定的端口:

命令格式:

ssh name@remoteserver -p 2222

或者

ssh remoteserver -l name -p 2222

說明:p 參數指定端口號,通常在路由裏做端口映射時,我們不會把22端口直接映射出去,而是轉換成其他端口號,這時就需要使用-p端口號命令格式。

4、通過遠程主機1跳到遠程主機2:

命令格式:

ssh -t remoteserver1 ssh remoteserver2

說明:當遠程主機remoteserver2無法直接到達時,可以使用-t參數,然後由remoteserver1跳轉到remoteserver2。在此過程中要先輸入remoteserver1的密碼,然後再輸入remoteserver2的密碼,然後就可以操作remoteserver2了。

5、通過SSH運行遠程shell命令:

命令格式:

ssh -l name remoteserver ‘command’

說明:連接到遠程主機,並執行遠程主機的command命令。

例如:查看遠程主機的內存使用情況。 $ ssh -l root 192.168.1.100 svmon -G

6、修改SSH監聽端口:

默認情況下,SSH監聽連接端口22,攻擊者使用端口掃描軟件就可以看到主機是否運行有SSH服務,將SSH端口修改為大於1024的端口是一個明智的選擇,因為大多數端口掃描軟件(包括nmap)默認情況都不掃描高位端口。

打開/etc/ssh/sshd_config文件並查找下面這樣的行: Port 22 去掉該行前面的# 號,然後修改端口號並重新啟動SSH服務: $ /etc/init.d/sshd restart 或者service sshd restart

7、僅允許SSH協議版本2:

有兩個SSH協議版本,僅使用SSH協議版本2會更安全,SSH協議版本1有安全問題,包括中間人攻擊(man-in-the-middle)和註入(insertion)攻擊。編輯/etc/ssh/sshd_config文件並查找下面這樣的行: # Protocol 1,1 修改為 Protocol 2

8、禁止root用戶登錄:

通常情況下,不采用直接用root用戶登錄到遠程主機,由於root用戶擁有超級權限,這樣會帶來安全隱患,所以,一般我們用普通用戶登錄,當需要管理遠程主機時,再切換到root用戶下。

打開/etc/ssh/sshd_config文件,將 PermitRootLogin yes 將yes修改成no,重啟ssh服務, /etc/init.d/sshd restart 或者service sshd restart,就可以禁止root用戶登錄。

9、進行端口映射:

ssh的確很強大,可以很方便的實現從本地端口到遠程端口的映射,通常情況下使用 -L 或者 -R參數,例如:
ssh [email protected] -L 8023:RemoteIP:23
-L 將本地的某個端口映射到遠程主機的某個端口上,上例中就是將本地的8023端口映射到遠程主機的23號端口上,這樣就可以直接telnet本機的8023端口來訪問遠程主機了。
但是需要說明的是RemoteIP可以是127.0.0.1,此時127.0.0.1指的是遠程計算機,而非本機地址。

-R 則正好與-L相反,它將遠程主機的某個端口映射到本地的某個端口上,例如:
ssh [email protected] -R 8023:LocalIP:23
上例將遠程主機的8023端口映射到本機的23號端口,這樣遠程主機就可以telnet 自己的8023端口來訪問本地主機了。

假如公司內網有臺web服務器,但是只對內不對外,這樣,外網就無法訪問,可以用ssh進行端口映射來實現外網訪問內網的web服務器。假如web服務器名為webserver,webserver可以用ssh訪問到遠端主機remoteserver,登錄到webserver,然後在webserver用下面命令進行映射:

命令格式: ssh remoteserver -R 3000:localhost:80 執行完成後,在remoteserver機器上,執行netstat -an | grep 3000,查看有沒有開通3000端口。並執行以下命令觀察是否可以打開webserver上的網頁 $ w3m http://127.0.0.1:3000 如果能打開界面,說明映射成功.

但是,這只限於本機訪問web服務器,即只能remoteserver機器訪問webserver。因為3000端口綁定的是remoteserver機器的127.0.0.1的端口。可以編輯remoteserver機器上的/etc/ssh/sshd_config文件並添加如下內容: 添加 GatewayPorts yes 內容。

把監聽端口3000綁定到 0.0.0.0 地址上,iptables -A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT這樣外部的所有機器都能訪問到這個監聽端口,然後service iptables save保存退出。並重啟ssh服務/etc/init.d/sshd restart 或者service sshd restart。完成後其它機器就可以在瀏覽器中輸入 http://remoteserver:3000來訪問webserver了。

10、設置登錄時提示信息

ssh命令 遠程登錄