在 Linux 上開始使用 SSH

感謝我們生活的互聯世界,您不再需要物理訪問您的服務器。 您的服務器可以位於世界任何地方,您可以從本地計算機連接到它。

為此目的開發了許多協議和工具。 這些包括遠程登錄ssh. Telnet 不是首選,因為安全問題. 第二,ssh是安全連接到遠程系統的流行方式。

在本文中,我將介紹 Linux 用戶應該了解的一些有用命令和工具,以便通過 ssh 使用遠程系統及其資源。

請注意,您在個人本地 Linux 系統上運行的大多數命令在遠程系統上也應該可用(例如 ls、cat、cd 命令等)。 但與任何 Linux/UNIX 系統一樣,運行它們取決於分配給遠程用戶的權限。

什麼是 SSH?

ssh或安全外殼是一種網絡協議,用於通過網絡安全地操作網絡服務。 它使用加密標準來安全地連接和登錄到遠程系統。

它在遠程系統上存儲公鑰,在客戶端系統上存儲私鑰。 這些鍵在數學上成對出現。 當兩者都應用於雙變量函數時,它將產生一個值,該值將用於檢查該對是否有效。 這是最簡單的解釋。 有關詳細信息,請參閱這一頁.

SSH 使用示例

讓我們從配置開始ssh和非常酷的用例。

生成 ssh 密鑰

GitHub 和 Heroku 等網站正在請求您的ssh公鑰,這樣您就可以在不輸入密碼的情況下插入/部署代碼並且您沒有該密鑰對? 不用擔心。 您可以使用以下命令生成這樣的 ssh 密鑰對:

                      
                        ssh-keygen
                      
                    

它將詢問一個密鑰位置(密鑰將存儲在哪裡)和一個密碼(即密碼)。 密碼是可選的。

默認情況下,ssh 密鑰存儲在主目錄的 .ssh 目錄中。

如果關鍵位置是ssh 的 DIR_PATH/密鑰對會有兩個文件

  1. 路徑目錄/一對鑰匙
  2. 路徑目錄/keypairforssh.pub

1個是您不應與任何人共享的私鑰文件
是可以與遠程系統(使用其他受信任的通信,如郵件、物理傳輸和其他安全通信工具)和 Github、Heroku 等服務共享的公鑰文件,用於各自的用例。 請務必仔細檢查您要連接的服務。

將私鑰添加到密鑰代理

創建密鑰對時,它僅作為一組兩個文件存在。 要連接到遠程系統,您必須使用私鑰。 所以必須報告說這ssh 的 DIR_PATH/密鑰對是私鑰。

這是由

                      
                        ssh-add keylocation
                      
                    

在我們的例子中,它是

                      
                        ssh-add DIR_PATH/keypairforssh
                      
                    

通過 SSH 連接到遠程主機

如果私鑰和公鑰在正確的地方,你可以通過這種方式連接到系統。

                      
                        ssh [username]@hostname
                      
                    

其中用戶名必須是遠程系統上的有效用戶並且主機名可以被 DNS 或 IP 地址識別,以便 ssh 能夠與遠程系統通信並請求連接。

例如連接到名為“Linux手冊“用戶名”蘑菇“ , 利用:

                      
                        ssh [email protected] 
                      
                    

如上所述,上述命令使用本地系統上的私鑰和遠程系統上的公鑰,並驗證它們是否有效。 當且僅當密鑰對有效並生成 shell(類型取決於用戶在遠程系統上的配置)以供使用時,才允許您登錄。 您可以像使用本地系統一樣使用遠程系統。

假設私鑰沒有添加到密鑰代理中,那麼你可以像下面這樣ssh。

                      
                        ssh -i /path/to/private/key/file [email protected]
                      
                    

此密鑰對驗證通常進行一次。 Ssh 將遠程主機添加到授權主機列表中以備將來使用。

客戶端和遠程系統之間的文件複製

scp 命令是建立在 ssh 之上的工具。 它允許用戶將文件和目錄從遙控器複製到客戶端,反之亦然。

由於 scp 命令使用 ssh,因此它需要與 ssh 相同的要求。 這意味著公鑰必須在遠程系統上,私鑰必須在本地系統上。

                      
                        scp DIR_PATH_1 DIR_PATH_2
                      
                    

在哪裡PATH_ADD_1/PATH_ADD_2是本地或遠程文件系統路徑的路徑。 例如轉賬~/Documents/documentForLinux.txt為了 'Linux手冊/home/seeni/文檔目錄

                      
                        scp ~/Documents/documentForLinux.txt [email protected]:~/Documents
                      
                    

要反向複製同一文件,

                      
                        scp  [email protected]:~/Documents/documentForLinux.txt ~/Documents
                      
                    

掛載遠程文件系統或目錄

要在客戶端上掛載遠程系統目錄,sshfs是工具
為此特定目的而開發。

                      
                        sshfs [email protected]:/path/to/remote/folder /path/to/local/mount/point
                      
                    

上面的命令是完全直觀的。 這裡的“名稱”是遠程系統上接受的用戶名,服務器是遠程“主機名”。

在某些系統中,sshfs可能不可用,如果需要請安裝它。

提示:nohup 命令允許您在斷開 SSH 連接後繼續運行命令。

結論

恭喜你,你走到了盡頭。 我希望本文涵蓋所有與 ssh 相關的基本命令和工具。 這些工具足以讓您開始使用 ssh 進行遠程計算。

在相關文章中,您可以了解 tmate。 它是一個允許您通過 SSH 共享終端會話的工具。

我希望你覺得這篇文章有用。 如果您有任何建議,請隨時將其放在下面的評論部分。

相關文章