ssh遠程登錄Linux


SSH遠程登錄

SSH(Secure Shell)使用加密方式傳輸數據,相比其他使用明文傳輸的遠程登錄方式具有更高的安全性。

ssh允許使用兩種驗證方式登錄:密碼驗證密鑰驗證

系統版本:Ubuntu 18.04.2LTS

openssh-server 版本:1:7.6p1-4ubuntu0.3

密碼驗證

  • 服務端配置(全局配置文件:/etc/ssh/sshd_config)

    1. 安裝ssh:sudo apt install openssh-server

    2. 更改全局配置文件sshd_confignano /etc/ssh/sshd_config

      • 端口:去掉 Port 22 一項前的# ,若使用其他端口,把 22 更改為相應端口。

      • 密碼驗證:去掉 PasswordAuthentication yes 一項前的# ,並確保此項是yes而不是no

      • 其他選項(可選):

        • ListenAddress 0.0.0.0:定義服務端綁定的ip,默認綁定所有可用ip

        • PermitRootLogin prohibit-password:允許root用戶登錄

    3. 檢查sshd服務是否已啟動:systemctl status sshd ,若未啟動則:systemctl start sshd

    4. 開機啟動:systemctl enable sshd

    5. 查看主機地址:ip address ,找到相應的網卡,記下inet 后的ip

  • 客戶端配置(配置文件:~/.ssh/config):

    1. 連接至服務器:ssh -p port user@server-addressserver-address即上面記下的ip,- p 選項用於指定端口

    2. 客戶端可以在配置文件中存儲常用選項和常用主機:

      ~/.ssh/config
      # global options
      User user

      # host-specific options
      Host myserver
        HostName server-address
        Port     port

      進行了如上的配置后,以下命令是等效的

      $ ssh -p port user@server-address
      $ ssh myserver

密鑰驗證

  • 服務端配置

    1. 安裝ssh:sudo apt install openssh-server

    2. 更改全局配置文件sshd_confignano /etc/ssh/sshd_config

      • 端口:去掉 Port 22 一項前的# ,若使用其他端口,把 22 更改為相應端口。

      • 公鑰驗證:去掉 PubkeyAuthentication yes 一項前的# ,並確保此項是yes而不是no

      • 啟用公鑰文件:去掉 AuthorizedKeysFile 一項前的#

    3. 創建公鑰文件:touch ~/.ssh/authorized_keys,注意檢查該文件的權限是否為600。

    4. 其余步驟同上。

  • 客戶端配置

    1. 生成密鑰:ssh-keygen -t rsa

      注:當要求輸入文件名時(Enter file in which to save the key)請使用絕對路徑,否則密鑰將生成在當前目錄,若使用默認路徑則直接回車

    2. 到相應文件夾找到xxx.pub, xxx兩個文件,xxx放置於~/.ssh/文件夾下,xxx.pub上傳到服務端,並將其中內容追加到服務端的公鑰文件中,(永遠只把公鑰交給服務器)

      如:cat xxx.pub >> ~/.ssh/authorized_keys

    3. 使用ssh -p port user@server-address命令登錄即可

關於WSL的補充:
  • 端口一定要更改,因為22端口與Windows的默認ssh服務沖突,需更改為其他端口

參考鏈接

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM