大概思路:
1.在A上生成公鑰私鑰。
2.將公鑰拷貝給server B,要重命名成authorized_keys(從英文名就知道含義了)
3.Server A向Server B發(fā)送一個(gè)連接請(qǐng)求。
4.Server B得到Server A的信息后,在authorized_key中查找,如果有相應(yīng)的用戶名和IP,則隨機(jī)
生成一個(gè)字符串,并用Server A的公鑰加密,發(fā)送給Server A。
5.Server A得到Server B發(fā)來的消息后,使用私鑰進(jìn)行解密,然后將解密后的字符串發(fā)送給
Server B。Server B進(jìn)行和生成的對(duì)比,如果一致,則允許免登錄。
概念:authorized_keys文件中存儲(chǔ)著本地系統(tǒng)可以允許遠(yuǎn)端計(jì)算機(jī)系統(tǒng)ssh免密碼登陸的賬號(hào)信息。也就是遠(yuǎn)端的計(jì)算機(jī)可以通過什么賬號(hào)及地址不需要輸入密碼既可以遠(yuǎn)程登陸本系統(tǒng)。
步驟:
一、配置完本地ssh-key后,配置本地或者vscode保持長時(shí)間連接遠(yuǎn)程linux服務(wù)器,避免每次都密碼登錄(突然造成遠(yuǎn)程服務(wù)端口占用問題,耽誤我好久時(shí)間,只因?yàn)樯賵?zhí)行了(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)):
例如:
PC =(ssh)> (9.135.164.160)
9.135.164.160) =(ssh)> git
二、具體操作流程
單向登陸的操作過程(能滿足上邊的目的):
1、登錄A機(jī)器
2、ssh-keygen -t [rsa|dsa],將會(huì)生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 文件復(fù)制到B機(jī)器的 .ssh 目錄, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,從A機(jī)器登錄B機(jī)器的目標(biāo)賬戶,不再需要密碼了;(直接運(yùn)行 #ssh 192.168.20.60 )
雙向登陸的操作過程:
1、ssh-keygen做密碼驗(yàn)證可以使在向?qū)Ψ綑C(jī)器上ssh ,scp不用使用密碼.具體方法如下:
2、兩個(gè)節(jié)點(diǎn)都執(zhí)行操作:#ssh-keygen -t rsa
然后全部回車,采用默認(rèn)值.
3、這樣生成了一對(duì)密鑰,存放在用戶目錄的~/.ssh下。
將公鑰考到對(duì)方機(jī)器的用戶目錄下,并將其復(fù)制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。
4、設(shè)置文件和目錄權(quán)限:
設(shè)置authorized_keys權(quán)限
chmod 700 -R .ssh
5、要保證.ssh和authorized_keys都只有用戶自己有寫權(quán)限。否則驗(yàn)證無效。