SSH無需密碼登入伺服器且保持連線不斷開的方法

yinhaixiang發表於2021-03-11

SSH無需密碼登入伺服器 Mac 無密碼 SSH 登入伺服器,只需要簡單三步,不再需要記住賬號密碼,快速進入伺服器

第一步,生成金鑰對 在當前使用者下建立 .ssh目錄

mkdir ~/.ssh 使用命令 ssh-keygen生成金鑰對,會在 ~/.ssh目錄下生成公/私鑰

id_rsa //私鑰 id_rsa.pub //公鑰 第二步,上傳公鑰 使用命令 ssh-copy-id user@hostname

如:ssh-copy-id admin@192.168.1.55 輸入密碼,操作成功 檢視伺服器 ~/.ssh/authorized_keys,可以看到本地的公鑰已經寫入到 authorized_keys檔案中

執行命令 ssh user@hostname就可以直接無密碼 SSH 登入伺服器

第三步,config 配置 在當前使用者 .ssh目錄下建立 config檔案

touch ~/.ssh/config 通過 vim編輯 config,新增伺服器配置資訊

Host iChochy //伺服器別名 Hostname 192.168.1.55 //伺服器地址 User admin //伺服器使用者 Identityfile ~/.ssh/id_rsa //伺服器公鑰對應的本地私鑰 直接執行命令 ssh iChochy就可以直接無密碼 SSH 登入伺服器

SSH保持連線不斷開 經常連線ssh長時間不操作就斷開,實在忍無可忍,每次都想解決這個問題,但是就是懶得搞,這次必須得一刀解決。

解決方法一:伺服器配置 連線SSH ssh root@192.168.0.1 編輯sshd_config vim /etc/ssh/sshd_config 找到ClientAliveInterval,將前面的#去掉,

伺服器每隔60秒會給客戶端傳送一次保活資訊包給客戶端,可以將這個值設定大一點

ClientAliveInterval 120 找到ClientAliveCountMax,將前面的#去掉,

伺服器發出的請求如果客戶端沒有響應,則判斷超時1次,這個引數是表示允許超時的次數。可以將這個值設定大一點。

ClientAliveCountMax 720 執行 systemctl restart sshd 第一句意思是服務端每間隔120s會向客戶端傳送一個空資料包 第二句表示伺服器最大會傳送720次,120*720=24小時 24小時期間連線是不會斷開的 這樣的話就算不操作也不會斷開了,根據自己的需要將值調整即可。

解決辦法二:客戶端配置 通過修改客戶端設定,以保證連線所有伺服器都使用此設定 vim ~/.ssh/config 新增下面3個,如果有就修改,否則新增,意思跟伺服器配置的差不多,不再闡述。 Host * TCPKeepAlive yes # Client每隔 60 秒傳送一次請求給 Server,然後 Server響應,從而保持連線 ServerAliveInterval 60 # Client發出請求後,伺服器端沒有響應得次數達到3,就自動斷開連線,正常情況下,Server 不會不響應 ServerAliveCountMax 3 有的文章說只要配置 ServerAliveInterval這一個引數就可以了, 讀者可以自行驗證, ServerAliveInterval我覺得60秒就好了,而且基本去連的機器都保持,所以配置了 *,如果有需要針對某個機器,可以自行配置為需要的 serverHostName。

解決辦法三:連線SSH指定引數 連線時ServerAliveInterval的值設定大一點,這樣就不會出現超時的現象了。

ssh root@192.168.0.1 -o ServerAliveInterval=99999 總結 我更偏向於解決辦法二,因為只要把客戶端配置好不管連線哪臺伺服器都不用擔憂。伺服器的話就要每臺都得配置。看大家的喜好和場景吧。

相關文章