Linux伺服器在運維過程中,經常需要進行遠端管理。而SSH是最常用的遠端管理工具之一。它可以讓管理員遠端登入Linux伺服器,執行命令和操作檔案。在本文中,我們將討論如何使用SSH連接Linux伺服器,並分享一些SSH的實用技巧。
身為系統管理員,你打算在 Linux 上使用 OpenSSH,完成日常工作的自動化,例如檔案傳輸、備份資料庫轉儲檔案到另一台伺服器等。要達成這個目標,你需要從主機 A 能自動登入主機 B。自動登入也就是說,要在 shell 腳本中使用ssh,而不需要輸入任何密碼。
本文會告訴你怎麼在 CentOS/RHEL 上設定 SSH 免密碼登入。自動登入設定好以後,你可以透過它使用 SSH (Secure Shell)和安全複製 (SCP)來移動檔案。
SSH 是開源的,是用於遠端登入的最可靠的網路協定。系統管理員用它來執行命令,以及透過 SCP 協定在網路上向另一台電腦傳輸檔案。
透過設定 SSH 免密碼登錄,你可以享受如下的便利性:
◆用腳本實現日常工作的自動化。
◆增強 Linux 伺服器的安全性。這是防範虛擬專用伺服器(VPS)遭受暴力破解攻擊的一個推薦的方法,SSH 金鑰單憑暴力破解是幾乎不可攻破的。
什麼是 Ssh-Keygen
ssh-keygen 是一個用來產生、建立和管理 SSH 認證用的公私鑰的工具。透過 ssh-keygen 指令,使用者可以建立支援SSH1 和 SSH2 兩個協定的金鑰。 ssh-keygen 為 SSH1 協定建立 RSA 金鑰,SSH2 則可以是 RSA 或 DSA。
什麼是 Ssh-Copy-Id
ssh-copy-id 是用來將本機公鑰拷貝到遠端的authorized_keys 檔案的腳本指令,它也會將身分識別檔案追加到遠端機器的~/.ssh/authorized_keys 檔案中,並給予遠端主機的使用者主目錄適當的的權限。
SSH 金鑰
#SSH 金鑰為登入 Linux 伺服器提供了更好且安全的機制。執行 ssh-keygen 後,將會產生公私密鑰對。你可以將公鑰放置到任意伺服器,從持有私鑰的客戶端連接到伺服器的時,會用它來解鎖。兩者配對時,系統無需密碼就能解除鎖定。
在 CentOS 和 RHEL 上設定免密碼登入 SSH
以下步驟在 CentOS 5/6/7、RHEL 5/6/7 和 Oracle Linux 6/7 上測試通過。
節點1:192.168.0.9 節點2 : 192.168.0.10
本章目錄結構
測試節點1到節點2的連接與存取:
[root@node1 ~]# ssh root@192.168.0.10 The authenticity of host '192.168.0.10 (192.168.0.10)' can't be established. RSA key fingerprint is 6d:8f:63:9b:3b:63:e1:72:b3:06:a4:e4:f4:37:21:42. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.10' (RSA) to the list of known hosts. root@192.168.0.10's password: Last login: Thu Dec 10 22:04:55 2015 from 192.168.0.1 [root@node2 ~]#
#使用 ssh-key-gen 指令產生公鑰和私鑰,這裡要注意的是可以對私鑰進行加密保護以增強安全性。
[root@node1 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: b4:51:7e:1e:52:61:cd:fb:b2:98:4b:ad:a1:8b:31:6d root@node1.ehowstuff.local The key's randomart image is: +--[ RSA 2048]----+ | . ++ | | o o o | | o o o . | | . o + .. | | S . . | | . .. .| | o E oo.o | | = ooo. | | . o.o. | +-----------------+
#用 ssh-copy-id 指令將公鑰複製或上傳到遠端主機,並將身分識別檔追加到節點2的 ~/.ssh/authorized_keys 中:
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.0.10 root@192.168.0.10's password: Now try logging into the machine, with "ssh '192.168.0.10'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
#驗證免密碼 SSH 登入節點2:
[root@node1 ~]# ssh root@192.168.0.10 Last login: Sun Dec 13 14:03:20 2015 from www.ehowstuff.local
總結一下,SSH是Linux系統中非常重要的遠端管理工具,它可以提供安全、高效的遠端存取方式。在使用SSH時,請注意加強安全措施,例如使用公鑰認證,並設定合理的設定參數。同時,我們也分享了一些實用的SSH技巧,例如使用代理、轉送連接埠等等,可以幫助我們更好地管理Linux伺服器。相信這些內容對於Linux維運人員會有所幫助。
以上是遠端管理Linux伺服器,從SSH入手的詳細內容。更多資訊請關注PHP中文網其他相關文章!