溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下SSH免密碼登錄配置詳解

發(fā)布時間:2020-08-31 20:38:49 來源:腳本之家 閱讀:163 作者:pengjunlee 欄目:服務器

假設有 A、 B 兩臺 Linux 服務器,我們希望能夠從其中一臺服務器通過 SSH 免密碼登錄到另一臺服務器。

兩臺服務器的信息如下: 

主機名 IP地址 免密碼登錄用戶名
server1 192.168.12.11 guest1
server2 192.168.12.12 guest2

環(huán)境設置(root權限)

1.關閉防火墻和SELinux

Redhat使用了SELinux來增強安全,關閉的辦法為:

a. 永久有效
修改 /etc/selinux/config 文件中的 SELINUX=enforcing 修改為 SELINUX=disabled ,然后重啟。

b. 臨時生效
setenforce 0
關閉防火墻的方法為:

a. 永久有效
開啟:chkconfig iptables on
關閉:chkconfig iptables off

b. 臨時生效
開啟:service iptables start
關閉:service iptables stop
需要對兩臺服務器分別進行設置,關閉防火墻和 SELinux 。  

2.設置主機名

編輯 /etc/sysconfig/network 文件,使用命令: vim /etc/sysconfig/network  ,設置格式:HOSTNAME=[主機名] 。
將A服務器的主機名設置為 server1 。 

Linux下SSH免密碼登錄配置詳解

將B服務器的主機名設置為 server2 。

Linux下SSH免密碼登錄配置詳解

3.配置hosts

編輯 /etc/hosts 文件,使用命令:vim /etc/hosts ,在兩臺服務器的 hosts 文件中分別增加如下配置:

192.168.12.11 server1
192.168.12.12 server2 

Linux下SSH免密碼登錄配置詳解

4.配置sshd

編輯兩臺服務器的 /etc/ssh/sshd_config 文件,使用命令:vim /etc/ssh/sshd_config 。

去掉以下3行的 “#” 注釋:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile   .ssh/authorized_keys

重啟 sshd 服務,使用命令:/sbin/service sshd restart 。  

秘鑰設置

1.創(chuàng)建免密碼登錄賬戶

使用命令:

useradd guest1 //創(chuàng)建新用戶
passwd guest1 //設置新用戶登錄密碼 

 Linux下SSH免密碼登錄配置詳解

同樣地,在 server2 中創(chuàng)建一個 guest2 賬戶 。

2.生成秘鑰

從 root 用戶切換到要免密碼登錄的賬戶,使用命令:su guest1 。

執(zhí)行命令:ssh-keygen -t rsa 

Linux下SSH免密碼登錄配置詳解

無需指定口令密碼,直接回車,命令執(zhí)行完畢后會在 guest1 用戶的家目錄中(/home/guest1/.ssh)生成兩個文件:

id_rsa: 私鑰
id_rsa.pub:公鑰

 Linux下SSH免密碼登錄配置詳解

按照同樣的步驟,在 server2 中為 guest2 賬戶生成好秘鑰文件。

3.將公鑰導入到認證文件

使用命令:

cat /home/guest1/.ssh/id_rsa.pub >> /home/guest1/.ssh/authorized_keys
ssh guest2@server2 cat /home/guest2/.ssh/id_rsa.pub >> authorized_keys

 Linux下SSH免密碼登錄配置詳解

使用命令 cat authorized_keys 查看 authorized_keys 文件內容如下:

Linux下SSH免密碼登錄配置詳解

4.設置文件訪問權限

使用命令:

chmod 700 /home/guest1/.ssh
chmod 600 /home/guest1/.ssh/authorized_keys

執(zhí)行完以上設置之后 server1 就能夠免密碼登錄本機了,使用命令:ssh guest1@server1 。 

Linux下SSH免密碼登錄配置詳解

注意:當 known_hosts 文件中缺少主機名稱信息時會提示如下信息,輸入 yes 即可將主機名稱寫入 known_hosts 文件并登陸成功。

Linux下SSH免密碼登錄配置詳解

至此,主機 server1 的 SSH 免密碼登錄就算配置完成了,接下來配置 server2 。

5.將認證文件復制到其他主機

執(zhí)行以下命令將生成的 authorized_keys、known_hosts兩個文件從 server1 復制到 server2 。

# scp [要傳輸的本地文件] [遠程主機用戶名]@遠程主機ip或主機名:[文件要傳輸到的目標位置]
scp /home/guest1/.ssh/authorized_keys guest2@server2:/home/guest2/.ssh/authorized_keys
scp /home/guest1/.ssh/known_hosts guest2@server2:/home/guest2/.ssh/known_hosts

 Linux下SSH免密碼登錄配置詳解

待復制完成以后,先使用以下命令設置文件訪問權限。

chmod 700 /home/guest2/.ssh
chmod 600 /home/guest2/.ssh/authorized_keys

然后,執(zhí)行 ssh guest1@server1 命令就能夠使用server2的guest2賬戶免密碼登錄server1的guest1賬戶了。

Linux下SSH免密碼登錄配置詳解

至此,兩臺服務器的SSH 免密碼登錄就全部設置完成,如果出錯,請仔細檢查以上各個步驟。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI