目標(biāo):登錄目標(biāo)服務(wù)器的時候,不需要輸入密碼,直接? ssh root@IP地址,或者 ssh root@主機(jī)名稱(在/etc/hosts中有配置)
SSH 密鑰對?最直觀的作用:讓你方便的登錄到 SSH 服務(wù)器,而無需輸入密碼。

第一步:在客戶端生成密鑰對,執(zhí)行命令 ssh-keygen -t rsa? ?一直回車,不需要輸入;否則,生成的秘鑰文件不會在.ssh文件夾中。

ssh-keygen 命令參數(shù),用的最多的是-t:指定要創(chuàng)建的密鑰類型
-b:指定密鑰長度;
-e:讀取openssh的私鑰或者公鑰文件;
-C:添加注釋;
-f:指定用來保存密鑰的文件名;
-i:讀取未加密的ssh-v2兼容的私鑰/公鑰文件,然后在標(biāo)準(zhǔn)輸出設(shè)備上顯示openssh兼容的私鑰/公鑰;
-l:顯示公鑰文件的指紋數(shù)據(jù);
-N:提供一個新密語;
-P:提供(舊)密語;
-q:靜默模式;
-t:指定要創(chuàng)建的密鑰類型。
如果遇到權(quán)限問題,給文件授權(quán)
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
第二步:執(zhí)行命令?ssh-copy-id root@172.19.25.90? 把生成的公鑰文件id_rsa.pub拷貝到目標(biāo)服務(wù)器的~/.ssh/authorized_keys信任列表之中,讓你在登錄目標(biāo)服務(wù)器的時候,識別你的客戶端,并且信任免密;
另外,將公鑰拷貝到服務(wù)器的~/.ssh/authorized_keys文件中方法有如下幾種:
1、將公鑰通過scp拷貝到服務(wù)器上,然后追加到~/.ssh/authorized_keys文件中,這種方式比較麻煩。scp -P 22 ~/.ssh/id_rsa.pub user@host:~/。
2、通過ssh-copy-id程序,就是我演示的方法,ssh-copy-id user@host即可
3、可以通過cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat >> ~/.ssh/authorized_keys’,這個也是比較常用的方法,因?yàn)榭梢愿亩丝谔枴?/p>

你就會發(fā)現(xiàn),已經(jīng)把你客戶端的公鑰內(nèi)容,追加到目標(biāo)服務(wù)器的authorized_keys文件之中了,如下圖:


沒錯,就這2步驟,解決了免密登錄;
通常情況是下,是把你管理的所有機(jī)器,互相都添加到各自的信任列表之中;這樣你就實(shí)現(xiàn)了所有機(jī)器的免密登錄,無縫切換;
-----------------------一條很騷的分割線-----------------------------
優(yōu)化步驟:
通常我們不會記住IP地址,
而是把所有需要訪問服務(wù)器進(jìn)行命名,hostname,
編輯到/etc/hosts文件之中,
這樣就可以通過名稱來免密登錄;
執(zhí)行命令:vim /etc/hosts命令,編輯主機(jī)映射文件,并保存;

/usr/bin/ssh-copy-id: ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: @? ? ? WARNING: POSSIBLE DNS SPOOFING DETECTED!? ? ? ? ? @
ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: The ECDSA host key for k8s-master has changed,
ERROR: and the key for the corresponding IP address 172.19.25.88
ERROR: is unchanged. This could either mean that
ERROR: DNS SPOOFING is happening or the IP address for the host
ERROR: and its host key have changed at the same time.
ERROR: Offending key for IP in /root/.ssh/known_hosts:1
ERROR:? remove with:
ERROR:? ssh-keygen -f "/root/.ssh/known_hosts" -R 172.19.25.88
ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: @? ? WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!? ? @
ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
ERROR: Someone could be eavesdropping on you right now (man-in-the-middle attack)!
ERROR: It is also possible that a host key has just been changed.
ERROR: The fingerprint for the ECDSA key sent by the remote host is
ERROR: SHA256:cACtB65yC+zBukrepOB5Vti+oTHWjl4b12YCzGthHBA.
ERROR: Please contact your system administrator.
ERROR: Add correct host key in /root/.ssh/known_hosts to get rid of this message.
ERROR: Offending ECDSA key in /root/.ssh/known_hosts:3
ERROR:? remove with:
ERROR:? ssh-keygen -f "/root/.ssh/known_hosts" -R k8s-master
ERROR: ECDSA host key for k8s-master has changed and you have requested strict checking.
ERROR: Host key verification failed.
