不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學習啦>學習電腦>操作系統(tǒng)>Linux教程>

Linux中的ssh命令的詳細解釋

時間: 佳洲1085 分享

  linxu下的ssh是一種加密的網(wǎng)絡協(xié)議。下面由學習啦小編為大家整理了linux的ssh命令的詳細解釋的相關知識,希望對大家有幫助!

  一、Linux中的ssh命令的詳細解釋

  SSH(全稱 Secure Shell)是一種加密的網(wǎng)絡協(xié)議。使用該協(xié)議的數(shù)據(jù)將被加密,如果在傳輸中間數(shù)據(jù)泄漏,也可以確保沒有人能讀取出有用信息。要使用 SSH,目標機器應該安裝 SSH 服務端應用程序,因為 SSH 是基于客戶-服務模式的。 當你想安全的遠程連接到主機,可中間的網(wǎng)絡(比如因特網(wǎng))并不安全,通常這種情況下就會使用 SSH。

  二、Linux中的ssh命令的基本功能

  1、連接到遠程主機:

  ssh name@remoteserver

  ;或者

  ssh remoteserver -l name

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

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

  ssh name@remoteserver -p 2222

  ;或者

  ssh remoteserver -l name –p 2222

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

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

  ssh -t remoteserver1 ssh remoteserver2

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

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

  ssh -l name remoteserver ‘command’

  說明:連接到遠程主機,并執(zhí)行遠程主機的command命令。例如:查看遠程主機的內(nèi)存使用情況。

  5、修改SSH監(jiān)聽端口:

  默認情況下,SSH監(jiān)聽連接端口22,攻擊者使用端口掃描軟件就可以看到主機是否運行有SSH服務,將SSH端口修改為大于1024的端口是一個明智的選擇,因為大多數(shù)端口掃描軟件(包括nmap)默認情況都不掃描高位端口。打開/etc/ssh/sshd_config文件并查找下面這樣的行:

  Port 22

  去掉該行前面的# 號,然后修改端口號并重新啟動SSH服務:

  $ /etc/init.d/ssh restart

  6、僅允許SSH協(xié)議版本2:

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

  # Protocol 2,1

  修改為:

  Protocol 2

  * 7、禁止root用戶登錄:*

  通常情況下,不采用直接用root用戶登錄到遠程主機,由于root用戶擁有超級權(quán)限,這樣會帶來安全隱患,所以,一般我們用普通用戶登錄,當需要管理遠程主機時,再切換到root用戶下。打開/etc/ssh/sshd_config文件并查找下面這樣的行:

  #PermitRootLogin yes

  將#號去掉,然后將yes修改成no,重啟ssh服務,這樣就可以禁止root用戶登錄。

  8、設置登錄時提示信息

  首先編輯一個文件,如bannertest.txt,文件內(nèi)容自行定義。然后打開/etc/ssh/sshd_config文件并查找下面這樣的行:

  #Banner /some/path

  將#號去掉,然后將bannertest.txt文件的全路徑替換/some/path,然后保存,重啟ssh服務。當客戶端登錄時,就會看到bannertest.txt文件中的提示信息。

  9、scp命令:

  scp命令是SSH中最方便有用的命令,可以在兩臺服務器之間傳送文件。并且在傳輸過程中仍是使用ssh加密的。

  將遠程主機的/tmp/test 文件復制到本地的/bak文件夾下

  scp -p root@192.168.1.120:/tmp/test /bak

  將本地/bak/1234 文件復制到遠程主機的/tmp路徑下

  scp -p /bak/1234 root@192.168.1.120:/tmp

  三、Linux中的ssh命令的其它用法

  1、查看SSH客戶端版本

  有的時候需要確認一下SSH客戶端及其相應的版本號。使用ssh -V命令可以得到版本號。需要注意的是,Linux一般自帶的是OpenSSH: 下面的例子即表明該系統(tǒng)正在使用OpenSSH:

  $ ssh -V

  OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003

  下面的例子表明該系統(tǒng)正在使用SSH2:

  $ ssh -V

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

  2、進行端口映射:

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

  命令格式:

  ssh -R 3000:localhost:80 remoteserver

  執(zhí)行完成后,在remoteserver機器上,執(zhí)行netstat -an | grep 3000,查看有沒有開通3000端口。并執(zhí)行以下命令觀察是否可以打開webserver上的網(wǎng)頁

  $ w3m http://127.0.0.1:3000

  如果能打開界面,說明映射成功.但是,這只限于本機訪問web服務器,即只能remoteserver機器訪問webserver。因為3000端口綁定的是remoteserver機器的127.0.0.1端口??梢跃庉媟emoteserver機器上的/etc/ssh/sshd_config文件并添加如下內(nèi)容:

  添加 GatewayPorts yes 內(nèi)容,把監(jiān)聽端口3000綁定到 0.0.0.0 地址上,這樣外部的所有機器都能訪問到這個監(jiān)聽端口,然后保存退出。并重啟ssh服務。完成后其它機器就可以在瀏覽器中輸入 http://remoteserver:3000來訪問webserver了。

3635912