SSH,不僅僅是安全的外殼

SSH(安全殼) 是一種協議,可以像Telnet一樣幫助我們安全地訪問遠程計算機,但是使用加密算法可以幫助我們保持連接的安全性,特別是如果我們要訪問在網絡中執行重要功能的計算機時。組織。

通常,要進行訪問,我們必須提供我們的用戶名和計算機地址,以便SSH服務器要求我們提供訪問密碼:

ssh usuario@equiporemoto

從客戶端啟動遠程計算機與我們之間的第一個連接的那一刻起,信息已經在安全地傳輸,從而阻止了某人獲取我們對該計算機的訪問憑據,但是SSH是一種非常適應性強的協議,為我們提供了許多可能性。

SCP

首先是能夠使用大多數SSH服務器實現的SCP(Secure CoPy)來在客戶端和遠程計算機之間傳輸文件,而無需安裝FTP或NFS服務器:

scp archivo.tar.gz usuario@equiporemoto:/home/usuario
scp usuario@equiporemoto:/var/log/messages messages.txt

SSH隧道

此功能非常有用,因為它允許我們在客戶端和遠程計算機之間發送和接收不一定是Shell命令的信息,例如普通瀏覽。 如果您不知道此功能有什麼用,請考慮以下事項:您需要訪問一個頁面,但是您所處的位置已實現了防火牆,該防火牆恰好阻止了該頁面,因此,我們可以對沒有該頁面的遠程計算機執行“隧道”操作通過我們的SSH會話鎖定並瀏覽頁面:

ssh -D 8888 usuario@equiporemoto

連接後,我們的SSH客戶端會在端口8888上“偵聽”作為代理服務器,以便我們可以配置瀏覽器,並且所有流量都通過SSH會話進行傳輸

SSH隧道

我遇到的另一個例子是,由於某些地理限制,當我們無法從所在位置訪問Web服務時,在建立隧道時,該Web服務將遠程服務器的IP檢測為源IP,而不是客戶端IP。 這在某種程度上等效於VPN(虛擬專用網)

反向SSH

如果由於某種原因我們需要訪問位於防火牆後面的計算機並且不允許我們將SSH流量重定向到該計算機,則可以執行“反向SSH”,以使該計算機連接到另一台SSH服務器。我們也可以連接到它,以訪問防火牆後面的設備。 想到的一個例子是,當我們想幫助一個不知道如何在其調製解調器上配置重定向的朋友,但是我們需要遠程訪問他的計算機時:

朋友->調製解調器-> SSH服務器<-關於我們

遵循的步驟相對非常簡單:

朋友
ssh -R 9999:localhost:22 usuario@servidorssh

我們
ssh usuario@servidorssh
進入SSH服務器後,我們可以使用以下方式與朋友的團隊建立聯繫
ssh amigo@localhost -p 9999

如您所見,所有魔術都在於-R參數,該參數告訴中間服務器在我們的朋友的計算機上的9999端口上,我們的計算機現在正在作為服務器進行偵聽。

這些只是SSH提供給我們的一些可能性,但是我邀請您嘗試更多的可能性,例如: 我們可以使用RSA密鑰執行無人看管的腳本,將X會話(圖形模式)重定向到我們的圖形環境,僅舉幾例。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   天文 他說:

    很棒的文章,我迫不及待地想回家並開始練習它們。

    1.    ADR14n 他說:

      太感謝了! 事實上,這是我在部落格上的第一篇文章,閱讀這些評論非常愉快。 問候!

  2.   帕勃羅·卡多佐(Pablo Cardozo) 他說:

    昨天我只是問了一些關於這個主題的事情,如下。

    有沒有辦法 scp 整個資料夾,但要考慮檔案的日期? 也就是說,我有一個資料夾,其中包含不久前已經下載的許多文件,我有興趣僅下載在特定日期之後上傳到該資料夾的內容。

    提前向您致意並表示非常感謝。

    1.    拉夫 他說:

      您可以透過 SSH 使用 RSYNC 來完成此操作。 😉

      1.    Giskard 他說:

        rsync是瓶子的頂部! 😀

      2.    愛德華多 他說:

        我建議你嘗試 unison,它非常壯觀,它可以在存儲庫中找到(至少在 debian 和 ubuntu 中)

        http://www.cis.upenn.edu/~bcpierce/unison/

        除了同步不同電腦上的目錄之外,我還用它每天將筆記備份到另一台電腦上。

        這是非常容易使用

        我希望它對你有用!

        成功案例
        愛德華多

    2.    左撇子 他說:

      這看起來更像是 rsync 之類的任務,但我不知道是否有一個參數可以專門執行此操作,如果沒有,則可能必須從腳本中處理

    3.    ADR14n 他說:

      我想到的是按日期排序 ls,然後用一個簡單的 scp 從那裡複製您需要的內容,因為 scp 沒有他們提到的那麼多功能,它確實有 rsync。

  3.   匿名 他說:

    我可以證明反向 ssh 效果很好,我在我的電腦和 700 多公里外的另一台電腦之間使用它,零問題。
    感謝您的這些文章,它們非常有價值。

  4.   停止 他說:

    太鹹了! 哈哈,我不知道 ssh 有這麼多的可能性,我已經想學習如何設定 ssh 伺服器並開始嘗試它的功能,只有一件事,你能解釋一下每個參數的作用嗎?

    1.    ADR14n 他說:

      根據 ssh man 本身,-D 用於在本地指定“動態應用程式轉發器”,正如我在文章中所解釋的,它用於在同一 SSH 會話中通過隧道傳遞流量。 -R 指定將透過轉送重新導向到我們本機電腦的遠端連接埠。 最後 -p 指定客戶端在不使用標準連接埠時應連接到哪個連接埠:22

  5.   曼努埃爾姆登 他說:

    很高興你談到這個主題,我有一個關於ssh 密鑰的問題,可以為不同的服務生成多個密鑰嗎?我希望他們能發表一篇關於管理ssh 密鑰的帖子,我知道Google 有答案,但我希望你們能討論一下,

    的問候!

    1.    ADR14n 他說:

      當您使用 SSL 金鑰進行身份驗證時,您可以將其(您的電腦的)匯出到不同的服務,同樣,如果您的電腦是伺服器,您可以合併來自不同電腦的不同金鑰。 我不知道我是否回答了你的問題,但我明白了。 問候

  6.   路易斯 他說:

    我似乎記得有一種透過 SSH 的方法可以讓我們遠端運行應用程式並在我們的電腦上查看它,就像它是本機應用程式一樣。

    例如,我們可以運行 Firefox,我們在本機電腦上查看和控制它,但該進程在遠端電腦上運行。

    在資源很少的計算機上特別有用,但不幸的是我無法控制問題,而且我不知道如何配置計算機來做到這一點。

    有人知道嗎?

    1.    員工管理 他說:

      對於類似的事情,最好使用 VNC,並且可以使用 SSH 建立隧道。

      1.    x11泰特11x 他說:

        @Staff,對我來說,不建議使用 VNC...如果我沒記錯的話,使用 VNC 你會帶來整個桌面...

        @Luis,您所做的只需在 ssh 中添加“-X”參數即可完成(您必須允許在伺服器上轉發 X)

        http://i.imgur.com/NCpfzBL.jpg

      2.    員工管理 他說:

        @ x11tete11x
        考慮到路易斯提到的,我想提供另一種選擇,因為:

        1.“在資源很少的計算機上特別有用...”

        - 在單一應用程式的情況下,它可能不會消耗那麼多資源,但嘗試使用 x 轉發打開 10 個視窗仍然會使系統比使用單一 VNC 實例更加困難,因為 VNC 不會“佔用整個桌面”
        -當你在客戶端關閉程式時,它在伺服器上的結束也是一樣的(如果我錯了,有人糾正我),而使用VNC,你可以,例如,花整晚下載一個torrent,然後再次登入早上,一切都會像我離開時一樣繼續。
        -VNC 是一種與系統無關的協議,您可以從 Win、Andorid、Mac OSX 等用戶端存取它。 並使用您的 GNU/Linux 程序,無需安裝 VNC 用戶端本身以外的任何東西。

        2.“……不幸的是,我無法控制這個問題,而且我不知道如何配置計算機來做到這一點。”

        安裝 VNC 和設定 SSH 隧道(透過 GUI 完成)比行動 X 設定檔要容易得多(並且沒有編寫錯誤和在沒有桌面的情況下重新啟動的風險)。

      3.    路易斯 他說:

        謝謝兩位的評論。

        一段時間以來,我一直在使用 SSH 和 SHFS 來存取我的小型伺服器上的遠端內容,但我從未能夠在圖形環境中運行遠端應用程式。

        我將嘗試這兩個選項,看看效果如何。 我一開始提到的似乎更簡單,因為根據 x11tete11x,您只需添加一個參數。

        然後我會看看是否能找到一個簡單的方法來配置VNC,因為我有點方便,我是Arch用戶,所以wiki上肯定會有信息,這對我來說是另一回事。 哈哈哈

        問候。

    2.    ADR14n 他說:

      可以透過將 -X 參數傳遞給會話來完成,但是您必須將 X 伺服器配置為接受來自網路上電腦的連接,我認為這是使用 xhost 實用程式配置的。 正如工作人員所提到的,VNC 也是一個非常好的選擇

    3.    馬里奧 他說:

      它是 X11 轉發,在同一網站上有一篇關於它的文章:
      https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/

    4.    路易斯 他說:

      謝謝朋友的信息。

      也就是說,我會嘗試使用這兩種選項來查看哪一個最適合我。

      的問候!