伺服器ssh如何配置
① ssh配置config快捷登錄伺服器
1.1 如果在你本機電腦主目錄內 不存在 隱藏文件夾 .ssh 的情況下輸入命令: ssh-keygen -t rsa 不需要輸入任何內容,連續三下回車確認。
1.2 進入 .ssh 文件夾 , 輸入 ls -l 可以看到 id_rsa 和 id_rsa.pub 兩個文件
1.3 創建config文件,輸入: touch config
1.4 配置公鑰免登陸 , 先通過密碼的方式登錄到你的伺服器主機上。然後將你本機文件 ~.ssh/id_rsa.pub 裡面的內容復制 並粘貼到 目標伺服器主機的 ~.ssh/authorized_keys 文件內 , 如果沒有 authorized_keys 可以使用 touch authorized_keys 創建一個。至此准備階段完畢~~
2.1 配置文件參數
Host : 可以看作是一個你要識別的名稱,對識別的名稱,進行配置對應的的主機名和ssh文件
HostName : 要登錄主機的IP地址、或者域名
User : 登錄名
port : 埠
IdentityFile : 指明上面User對應的identityFile路徑 也就是 私鑰的路徑
ProxyCommand : 代理命令(不常用) , 通俗解釋: 就是當你連接上目標伺服器後,首先執行的命令
** 2.2 用例參考 **
# aliyun 獨行浪子
Host rifuwuqi # 設置名稱為 xinglangzi
HostName 39.104.110.110 配置目標主機IP 也可以是域名
User root
port 22
IdentityFile ~/.ssh/id_rsa 私鑰的路徑
ProxyCommand tail -f /backend/logs/info.log 表示登錄目標主機後,執行此命令查看日誌
在終端(terminal) 輸入 : ssh rifuwuqi
② 怎麼配置SSH
這個有版本要求的 IOS 12.0以上且K9 的才可以1定義用戶 user mize pass [email protected] 2 定義域名 ip domain-name mize.myrice.com //配置SSH必需 3生成密鑰 crypto key generate rsa molus 2048 執行結果: The name for the keys will be: 6509-mize.myrice.com % The key molus size is 2048 bits Generating RSA keys ... [OK] 4設置ssh超時時間 ip ssh time 120 5設置一個認證強度 ip ssh authentication ? Number of authentication retries
③ Windows伺服器上配置ssh和gfortran
一、安裝Windows系統,注意進入界面時,不要選擇或輸入Microsoft賬戶,以免登錄用戶名存在問題。
二、安裝配置OpenSSH伺服器端,開啟埠(一般默認已開啟)設置默認shell,三步缺一不可。請參考官網步驟https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_server_configuration
三、安裝MinGW64,配置環境變數
四、修改ssh config,參考https://blog.51cto.com/rongfengliang/3124742
④ SSH協議、openSSH遠程口令及密鑰登錄配置
SSH(Secure Shell)協議為遠程登錄或其它網路服務(如:sftp、scp)提供安全保障的一種協議。它設計之初的主要目的是替代telnet遠程登錄協議,由於telnet協議以明文的方式在互聯網上傳遞數據和伺服器賬戶口令,別有用心的人很容易就可以截獲得到這些數據和口令。以下是SSH詳細的登錄過程:
a、版本號協商階段
伺服器端啟動ssh服務,並打開22號埠(也可以配置為其它埠),等待客戶端鏈接。客戶端向伺服器端發起TCP連接。連接建立後,伺服器端和客戶端開始商議欲使用的協議版本號。如果協商成功,進入密鑰和演算法協商階段,否則,斷開TCP連接。
b、密鑰和演算法協商階段
伺服器端和客戶端分別向對方發送演算法協商報文,其中包括了自己支持的非對稱加密演算法列表、加密演算法列表、消息驗證碼演算法列表、壓縮演算法列表等。伺服器端和客戶端根據雙方支持的演算法得出最終使用的演算法(如非對稱加密演算法是採用RSA,還是DSA)。協商完成後羨鏈,伺服器端將自己的公鑰發送給客戶端,客戶端根據公鑰指紋決定是否信任此主機。選擇信任此主機後,客戶端使用伺服器端的公鑰將自己生成的會話密鑰加密,發送給伺服器端。以後的會話內容和口令都通過此會話密鑰加密發送。通常,每過一個小時,伺服器端和客戶端會重新商定會話密鑰,以防止會話密鑰被暴力破解。
c、認證階段
基於口令的認證:
客戶端採用在演算法協商階段產生的會話密鑰加密帳號、認證方法、口令,並將其傳送給伺服器端。伺服器端收到後將其解密後,基於本地賬戶密碼對其判斷是否正首脊確。如果正確,成功建立登錄連接,否則,向客戶端返回認證失敗報文,其中包含了可再次認證的方法列表。當登錄請求次數達到可允許的嘗試上限次數後,伺服器端斷開本次TCP連接,並限制此帳號連接請求。
基於密鑰的認證:
客戶端使用ssh-keygen工具在本地家目錄的.ssh/目錄下生成一對密鑰(如:公鑰id_rsa.pub、私鑰id_rsa)。並將公鑰追加保存到將要登錄的伺服器上的那個帳號家目錄的.ssh/authorized_keys文件中。客戶端使用演算法協商階段生成的會話密鑰加密帳號、認證方法、公鑰,並將其傳送給伺服器端。伺服器端收到後將解密後的公鑰與本地該帳號家目錄下的authorized_keys中的公鑰進兄芹孫行對比。如果內容不相同,認證失敗,否則伺服器端生成一段隨機字元串,並先後用客戶端公鑰和會話密鑰對其加密,發送給客戶端。客戶端收到後將解密後的隨記字元串用會話密鑰加密發送給伺服器端。如果發回的字元串與伺服器端起先生成的一樣,則認證通過,否則,認證失敗。
openssh便是SSH的一個開源實現。本文後續部分將簡要介紹如何用openssh基於口令和密鑰的遠程登錄。
示例:
# ssh [email protected]
如果是第一次登錄遠端主機,系統會出現以下提示:
因為協議本身無法確認遠端伺服器的真實性,用戶自行根據提供的經SHA256演算法提取的公鑰指紋判斷其真實性。如果確認為真,則輸入帳號密碼以登錄伺服器端。
a、首先在客戶端生成一對密鑰
示例:
b、將客戶端公鑰保存到伺服器端
示例:
另外,可以不使用ssh--id命令,改用以下命令,可以更好的理解公鑰的保存過程:
c、登錄驗證
如果仍然無法無口令登錄,請檢查sshd配置文件/etc/ssh/sshd_config,並將以下幾行前面的注釋符號取消。
⑤ 配置ssh遠程登錄
本地和遠程伺服器都創建
在創建密鑰的時候,可以定義加密類型和長度,具體可以參考ssh-keygen命令幫助。創建的過程中,首先會提示你 保存的位置 和 文件名 ,再提示你 給密鑰加個密碼 ,也可以直接回車不要密碼。
公鑰和私鑰默認保存這用戶目錄的 /.ssh/ 文件夾下。默認情況下, id_rsa 為私鑰, id_rsa.pub 為公鑰。
此時 還是需要用用戶名和密碼登錄遠程Linux伺服器。使用vi編輯 /etc/ssh/sshd_config 文件,先打開 PubkeyAuthentication 和 PermitRootLogin ,一般只要把這幾個參數前面的#(注釋符)刪掉即可。
重啟ssh服務
在macOS端操作以下命令,把公鑰上傳到遠程伺服器,會提示輸入遠程的Linux伺服器的密碼。
在遠程Linux伺服器上,操作以下命令,把公鑰 追加 到伺服器ssh認證文件中:
如果沒有 authorized_keys 這個文件,請到 .ssh 文件夾下創建一個,並把許可權設置為600。
追加好後,如果要禁止用戶名密碼登錄,再編輯 /etc/ssh/sshd_config 文件,把 PasswordAuthentication 設置為no。
重啟SSH服務(每次修改ssh配置都需要重啟)
如果沒有設置密鑰密碼,直接這終端輸入 ssh root@IP 即可登錄遠程伺服器。如果該用戶下沒有公鑰,則會提示Permission denied。