Linux下SSH免密碼登錄配置詳解
假設(shè)有 A、 B 兩臺(tái) Linux 服務(wù)器,我們希望能夠從其中一臺(tái)服務(wù)器通過(guò) SSH 免密碼登錄到另一臺(tái)服務(wù)器。
兩臺(tái)服務(wù)器的信息如下:
主機(jī)名 | IP地址 | 免密碼登錄用戶名 |
server1 | 192.168.12.11 | guest1 |
server2 | 192.168.12.12 | guest2 |
環(huán)境設(shè)置(root權(quán)限)
1.關(guān)閉防火墻和SELinux
Redhat使用了SELinux來(lái)增強(qiáng)安全,關(guān)閉的辦法為:
a. 永久有效
修改 /etc/selinux/config 文件中的 SELINUX=enforcing 修改為 SELINUX=disabled ,然后重啟。
b. 臨時(shí)生效
setenforce 0
關(guān)閉防火墻的方法為:
a. 永久有效
開啟:chkconfig iptables on
關(guān)閉:chkconfig iptables off
b. 臨時(shí)生效
開啟:service iptables start
關(guān)閉:service iptables stop
需要對(duì)兩臺(tái)服務(wù)器分別進(jìn)行設(shè)置,關(guān)閉防火墻和 SELinux 。
2.設(shè)置主機(jī)名
編輯 /etc/sysconfig/network 文件,使用命令: vim /etc/sysconfig/network ,設(shè)置格式:HOSTNAME=[主機(jī)名] 。
將A服務(wù)器的主機(jī)名設(shè)置為 server1 。
將B服務(wù)器的主機(jī)名設(shè)置為 server2 。
3.配置hosts
編輯 /etc/hosts 文件,使用命令:vim /etc/hosts ,在兩臺(tái)服務(wù)器的 hosts 文件中分別增加如下配置:
192.168.12.11 server1 192.168.12.12 server2
4.配置sshd
編輯兩臺(tái)服務(wù)器的 /etc/ssh/sshd_config 文件,使用命令:vim /etc/ssh/sshd_config 。
去掉以下3行的 “#” 注釋:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
重啟 sshd 服務(wù),使用命令:/sbin/service sshd restart 。
秘鑰設(shè)置
1.創(chuàng)建免密碼登錄賬戶
使用命令:
useradd guest1 //創(chuàng)建新用戶 passwd guest1 //設(shè)置新用戶登錄密碼
同樣地,在 server2 中創(chuàng)建一個(gè) guest2 賬戶 。
2.生成秘鑰
從 root 用戶切換到要免密碼登錄的賬戶,使用命令:su guest1 。
執(zhí)行命令:ssh-keygen -t rsa
無(wú)需指定口令密碼,直接回車,命令執(zhí)行完畢后會(huì)在 guest1 用戶的家目錄中(/home/guest1/.ssh)生成兩個(gè)文件:
id_rsa: 私鑰 id_rsa.pub:公鑰
按照同樣的步驟,在 server2 中為 guest2 賬戶生成好秘鑰文件。
3.將公鑰導(dǎo)入到認(rèn)證文件
使用命令:
cat /home/guest1/.ssh/id_rsa.pub >> /home/guest1/.ssh/authorized_keys ssh guest2@server2 cat /home/guest2/.ssh/id_rsa.pub >> authorized_keys
使用命令 cat authorized_keys 查看 authorized_keys 文件內(nèi)容如下:
4.設(shè)置文件訪問(wèn)權(quán)限
使用命令:
chmod 700 /home/guest1/.ssh chmod 600 /home/guest1/.ssh/authorized_keys
執(zhí)行完以上設(shè)置之后 server1 就能夠免密碼登錄本機(jī)了,使用命令:ssh guest1@server1 。
注意:當(dāng) known_hosts 文件中缺少主機(jī)名稱信息時(shí)會(huì)提示如下信息,輸入 yes 即可將主機(jī)名稱寫入 known_hosts 文件并登陸成功。
至此,主機(jī) server1 的 SSH 免密碼登錄就算配置完成了,接下來(lái)配置 server2 。
5.將認(rèn)證文件復(fù)制到其他主機(jī)
執(zhí)行以下命令將生成的 authorized_keys、known_hosts兩個(gè)文件從 server1 復(fù)制到 server2 。
# scp [要傳輸?shù)谋镜匚募 [遠(yuǎn)程主機(jī)用戶名]@遠(yuǎn)程主機(jī)ip或主機(jī)名:[文件要傳輸?shù)降哪繕?biāo)位置] 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
待復(fù)制完成以后,先使用以下命令設(shè)置文件訪問(wèn)權(quán)限。
chmod 700 /home/guest2/.ssh chmod 600 /home/guest2/.ssh/authorized_keys
然后,執(zhí)行 ssh guest1@server1 命令就能夠使用server2的guest2賬戶免密碼登錄server1的guest1賬戶了。
至此,兩臺(tái)服務(wù)器的SSH 免密碼登錄就全部設(shè)置完成,如果出錯(cuò),請(qǐng)仔細(xì)檢查以上各個(gè)步驟。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Linux系統(tǒng)下安裝jdbc與tomcat的圖文教程
本文通過(guò)圖文并茂的形式給大家介紹了Linux系統(tǒng)下安裝jdbc與tomcat的方法,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-01-01linux grub的啟動(dòng)加密及刪除恢復(fù)方法
這篇文章主要介紹了linux grub的啟動(dòng)加密及刪除恢復(fù)方法,需要的朋友可以參考下2016-10-10CentOS下寶塔部署Django項(xiàng)目的詳細(xì)教程
這篇文章主要介紹了CentOS下寶塔部署Django項(xiàng)目的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04在Linux中列出Systemd下所有正在運(yùn)行的服務(wù)的方法指南
Systemd是Linux的系統(tǒng)和服務(wù)管理器; init進(jìn)程的替代品,與SysV 和LSB init腳本兼容,systemctl命令是管理systemd的主要工具,在這篇文章中,我們將演示如何 Linux中列出systemd下所有正在運(yùn)行的服務(wù),感興趣的同學(xué)可以借鑒閱讀2023-06-06linux 網(wǎng)絡(luò)編程 socket選項(xiàng)的實(shí)現(xiàn)
這篇文章主要介紹了linux 網(wǎng)絡(luò)編程 socket選項(xiàng)的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06CentOS7.2 忘記root密碼及重置root密碼的簡(jiǎn)單處理方法
這篇文章主要介紹了CentOS7.2 忘記root密碼的簡(jiǎn)單處理方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-08-08