ssh命令 遠程登錄
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命令 遠程登錄