最近在研究一款文件系統(tǒng),需要遠(yuǎn)程給客戶機(jī)安裝軟件,且需要無SSH密碼訪問,另外需要遠(yuǎn)程給客戶機(jī)傳文件,每次輸入root密碼很不方便,就想到用ssh key生成公鑰、私鑰來驗(yàn)證,而避免每次就必須輸入root密碼。
服務(wù)器架構(gòu):
系統(tǒng):CentOS 6.5 x64
主控端A:192.168.0.150
遠(yuǎn)端主機(jī)B:192.168.0.151
原理:
利用ssh key生成公鑰、私鑰,密鑰相當(dāng)于一把鑰匙,而公鑰就相當(dāng)于一把門鎖,我們當(dāng)然是拿著鑰匙去開鎖,同樣的道理,我們密鑰放在本地服務(wù)器,也就是服務(wù)器A,把公鑰放在遠(yuǎn)程服務(wù)器,也就是遠(yuǎn)端主機(jī)B,那么我們就可以從主控端A ssh免密碼登陸到遠(yuǎn)端主機(jī)B了。
步驟:
1、在主控端A主機(jī)上生成無SSH密碼訪問的公鑰和私鑰文件
[root@localhost ~]# ssh-keygen -t rsa
![](/d/20211018/480bea986199efb7d64e5688c5018365.gif)
注:執(zhí)行命令中,連續(xù)按三次回車即可生成。
2、從主控端上傳公鑰到遠(yuǎn)端主機(jī)B上
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.151
![](/d/20211018/e35c79d870e4a971174fb6353842f244.gif)
中間需要輸入一次遠(yuǎn)端主機(jī)B的root密碼
3、在主控端測試無密碼SSH遠(yuǎn)程遠(yuǎn)端主機(jī)B
[root@localhost ~]# ssh root@192.168.0.151
![](/d/20211018/3b3de1cb98ab7fca1db0a179ce515254.gif)
可以看到已經(jīng)不輸主機(jī)B的root密碼,即可從A SSH遠(yuǎn)程到B了。