Linux 伺服器使用 SSH 連線 實現免登陸

莫名私下裡發表於2019-12-26

Linux伺服器使用ssh連線 實現免登陸
參考資料

  • SSH的工作原理是將客戶端程式連線到ssh伺服器

    Ubuntu(Centors類似 命令有所不同)

    1.主配置檔案於/etc/ssh/sshd_config
    2.Port 22 埠宣告指定sshd伺服器將偵聽連線的埠 
    如需更改埠 直接新增後  測試完成 再刪除 22
    3.PermitRootLogin 選擇是否允許root登入
    4.LoginGraceTime 指定在未成功登入的情況下保持連線活動的秒數
    [root@7S ssh]# sudo service ssh restart  重啟服務
    [root@7S ssh]# sudo systemctl restart ssh
  • 如何使用金鑰登入SSH

    [root@7S ssh]# systemctl stop firewalld.service //關閉防火牆
    [root@7S ssh]# systemctl is-enabled firewalld.service //檢視防火牆狀態
    enabled
    [root@7S ssh]# firewall-cmd --zone=public --add-port=1212/tcp --permanent 新增 放行埠 1212
    FirewallD is not running // 防火牆關閉
    [root@7S ssh]# systemctl restart firewalld.service //啟動
    [root@7S ssh]# firewall-cmd --zone=public --add-port=1212/tcp --permanent //繼續新增
    success 
     [root@7S ssh]# firewall-cmd --zone=public --list-ports //檢視所有埠
  • 建立SSH金鑰(本地的計算機上生成SSH金鑰)

    [root@7S ssh]# ssh-keygen -t rsa //建立
    按 Enter 鍵接受預設值  (Mac)金鑰在〜/.ssh/id_rsa.pub和〜/.ssh / id_rsa中 (window 系統不一樣 Admin檔名不一樣) /C/users/Admin/.ssh/id_rsa
  • ssh-copy-id root@192.168.100.00 //將公鑰複製到遠端伺服器 輸入密碼 下次不需要使用密碼 即可登入

  • 更改 埠 登入
    $ ssh -p 1212 root@192.168.100.00

  • 安全考慮 禁用密碼驗證

    [root@7S ssh]# /etc/ssh/sshd_config
    // PasswordAuthentication no //去掉註釋 改為 no
    // PubkeyAuthentication yes   // 預設不修改
    // ChallengeResponseAuthentication no // 預設不修改
  • sudo systemctl restart ssh //重啟服務 如有錯誤 關閉SELinux 或者 向SELinux中新增修改的SSH埠(如下)

  1. 安裝semanage
    semanage是SELinux的管理工具,是用於向SELinux新增和修改ssh埠號
  • 安裝依賴
    [root@7S ssh]# yum install policycoreutils-python
  • 安裝semanage
    [root@7S ssh]# yum provides semanage
    2:使用semanage向SELinux中新增我們剛剛新增的埠號(1212)
    查詢當前 ssh 服務埠:
    [root@7S ssh]# semanage port -l | grep ssh
    向 SELinux 中新增我們需要新增的ssh埠(1212):
    [root@7S ssh]# semanage port -a -t ssh_port_t -p tcp 1212
    驗證 ssh 埠是否新增成功:
    [root@7S ssh]# semanage port -l | grep ssh
    重啟 ssh 服務:
    [root@7S ssh]# systemctl restart sshd.service

第二種方法:

  1. ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.100.000 //將本機的id_rsa.pub公鑰檔案內容複製到遠端目標機的.ssh/authorized_keys檔案中

  2. 本地複製: scp .ssh/id_rsa.pub user@192.168.1.100:/home/root/

    伺服器操作:

    [root@7S ssh]# mkdir -p /home/root/.ssh/
    [root@7S ssh]# mv /home/root/id_rsa.pub /home/root/.ssh/authorized_keys  //authorized_keys 必須如此命名

    登入即可

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章