ssh 制作免密登錄(免密登錄多台服務器)


場景:服務器B (192.168.1.101)免密登錄A(192.168.1.100)服務器

1、登錄服務器B

  ①生產公鑰

ssh-keygen -t rsa
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again: 

注意:1、在第二步的時候千萬不要改名,采坑的教訓;2、普通用戶(非root),先切換到用以登錄的用戶

  ②上傳公鑰到服務器A

cd .ssh
scp id_rsa.pub  root@192.168.100.100:/root

 

2、登錄服務器A(被免費登錄服務器)

cd /root/.ssh
cat ../id_rsa.pub >> authorized_keys

 若為普通賬號(非root),則目錄為 /home/用戶名/.ssh/authorized_keys,不存在目錄或文件就先創建

3、免密登錄多台服務器

  在執行ssh-keygen -t rsa的時候如果不輸入文件名,會替換掉id_rsa文件,即上一次通過該文件設置的密碼登錄將失效,要支持免密登錄多台服務器需要生成秘鑰的的時候指定新的文件名

  然后在B服務器.ssh目錄編輯文件:config,該文件沒有擴展名,通過該文件來指定秘鑰,如下

  

Host 172.16.4.220
    HostName 172.16.4.220
    IdentityFile ~/.ssh/id_rsa_robot
    User robot

  host和hotsname都指定主機域名或ip地址

  IdentityFile  指定密鑰文件

  User 指定登錄的賬號

 

4、如果ssh免密登錄失敗可以增加 -vvv參數查看登錄日志

     ssh 客戶端日志:ssh  user@ip -vvv

     新啟動一個帶debug的ssh服務端:通過執行 /usr/sbin/sshd -d -p 2222 (在2222端口啟動一個帶debug輸出的sshd,注意防火牆問題)

5、其它問題

Bad owner or permissions on .ssh/config的解決
當為本機配一個固定用戶名遠程登錄某主機時,配置了一個config文件,但是在執行ssh免密碼登錄時報如下的錯誤:Bad owner or permissions on .ssh/config的解決。

經過查找資料發下解決辦法如下:

sudo chmod 600 config

Authentication refused: bad ownership or modes錯誤解決方法

sshd為了安全,對屬主的目錄和文件權限有所要求。如果權限不對,則ssh的免密碼登陸不生效。
用戶目錄權限為 755 或者 700,就是不能是77x。
.ssh目錄權限一般為755或者700
rsa_id.pub 及authorized_keys權限一般為644
rsa_id權限必須為600

解決方法
檢測目錄權限,把不符合要求的按要求設置權限即可。


免責聲明!

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



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