背景知識(shí)
我們把public key放在遠(yuǎn)程系統(tǒng)合適的位置,然后從本地開(kāi)始進(jìn)行ssh連接。
此時(shí),遠(yuǎn)程的sshd會(huì)產(chǎn)生一個(gè)隨機(jī)數(shù)并用我們產(chǎn)生的public key進(jìn)行加密后發(fā)給本地,本地會(huì)用private key進(jìn)行解密并把這個(gè)隨機(jī)數(shù)發(fā)回給遠(yuǎn)程系統(tǒng)。
最后,遠(yuǎn)程系統(tǒng)的sshd會(huì)得出結(jié)論我們擁有匹配的private key允許我們登錄
上述方法在 Linux 系統(tǒng)上大量使用,比如 Jenkins 構(gòu)建持續(xù)集成時(shí),需要遠(yuǎn)程登錄另外的若干臺(tái)機(jī)器將打包的結(jié)果復(fù)制,此時(shí)就需要免密登錄。
下面開(kāi)始介紹,兩臺(tái) Linux 系統(tǒng)實(shí)現(xiàn)免密登錄的步驟及條件。
如果你想學(xué)習(xí)Jenkins,我這邊給你推薦一套視頻,這個(gè)視頻可以說(shuō)是B站播放全網(wǎng)第一的Jenkins教程,同時(shí)在線(xiàn)人數(shù)到達(dá)1000人,并且還有筆記可以領(lǐng)取及各路大神技術(shù)交流:798478386??
Jenkins集成電子郵件,Allure以及企微通知實(shí)戰(zhàn)_嗶哩嗶哩_bilibili
一、機(jī)器A 免密登錄 機(jī)器B 原理
1、首先在 機(jī)器A 上生成一對(duì)秘鑰(ssh-keygen)將公鑰拷貝到 機(jī)器B,重命名 authorized_keys;
2、機(jī)器A 向 機(jī)器B 發(fā)送一個(gè)連接請(qǐng)求,信息包括用戶(hù)名、ip;
3、機(jī)器B 接到請(qǐng)求,會(huì)從 authorized_keys 中查找,是否有相同的用戶(hù)名、ip,如果有 機(jī)器B 會(huì)隨機(jī)生成一個(gè)字符串;
4、然后使用公鑰進(jìn)行加密,再發(fā)送個(gè) 機(jī)器A;
5、機(jī)器A 接到 機(jī)器B 發(fā)來(lái)的信息后,會(huì)使用私鑰進(jìn)行解密,然后將解密后的字符串發(fā)送給 機(jī)器B;
6、機(jī)器B 接到 機(jī)器A 發(fā)來(lái)的信息后,會(huì)給先前生成的字符串進(jìn)行比對(duì),如果一直,則允許免密登錄。
二、Centos7 默認(rèn)安裝了 ssh服務(wù)
三、啟動(dòng) ssh 服務(wù)
# 查看 ssh 狀態(tài)
systemctl status sshd
# 啟動(dòng) ssh
systemctl start sshd
# 停止 ssh
systemctl stop sshd
四、serverA 生成秘鑰
[root@localhost ~]# ssh-keygen
CentOS7 默認(rèn)使用RSA加密算法生成密鑰對(duì),保存在~/.ssh目錄下的id_rsa(私鑰)和id_rsa.pub(公鑰)。也可以使用“-t DSA”參數(shù)指定為DSA算法,對(duì)應(yīng)文件為id_dsa和id_dsa.pub,密鑰對(duì)生成過(guò)程會(huì)提示輸入私鑰加密密碼,可以直接回車(chē)不使用密碼保護(hù)。
五、移動(dòng) id_rsa.pub 文件
1、將 機(jī)器A ~/.ssh目錄中的 id_rsa.pub 這個(gè)文件拷貝到你要登錄的 機(jī)器B 的~/.ssh目錄中
scp ~/.ssh/id_rsa.pub 192.168.0.101:~/.ssh/
?2、然后在 機(jī)器B 運(yùn)行以下命令來(lái)將公鑰導(dǎo)入到~/.ssh/authorized_keys這個(gè)文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3、另外要注意請(qǐng)務(wù)必要將服務(wù)器上,這是linux的安全要求,如果權(quán)限不對(duì),自動(dòng)登錄將不會(huì)生效
~/.ssh權(quán)限設(shè)置為700文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-610744.html
chmod -R 777 ~/.ssh
~/.ssh/authorized_keys的權(quán)限設(shè)置為600文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-610744.html
chmod -R 600 ~/.ssh/authorized_keys
六、驗(yàn)證免密登錄
ssh 機(jī)器B的ip
到了這里,關(guān)于Jenkins 持續(xù)集成:Linux 系統(tǒng) 兩臺(tái)機(jī)器互相免密登錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!