目标:登录目标服务器的时候,不需要输入密码,直接 ssh root@IP地址,或者 ssh root@主机名称(在/etc/hosts中有配置)
SSH 密钥对 最直观的作用:让你方便的登录到 SSH 服务器,而无需输入密码。
第一步:在客户端生成密钥对,执行命令 ssh-keygen -t rsa 一直回车,不需要输入;否则,生成的秘钥文件不会在.ssh文件夹中。
ssh-keygen 命令参数,用的最多的是-t:指定要创建的密钥类型
-b:指定密钥长度;
-e:读取openssh的私钥或者公钥文件;
-C:添加注释;
-f:指定用来保存密钥的文件名;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-N:提供一个新密语;
-P:提供(旧)密语;
-q:静默模式;
-t:指定要创建的密钥类型。
如果遇到权限问题,给文件授权
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
第二步:执行命令 ssh-copy-id root@172.19.25.90 把生成的公钥文件id_rsa.pub拷贝到目标服务器的~/.ssh/authorized_keys信任列表之中,让你在登录目标服务器的时候,识别你的客户端,并且信任免密;
另外,将公钥拷贝到服务器的~/.ssh/authorized_keys文件中方法有如下几种:
1、将公钥通过scp拷贝到服务器上,然后追加到~/.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’,这个也是比较常用的方法,因为可以更改端口号。
你就会发现,已经把你客户端的公钥内容,追加到目标服务器的authorized_keys文件之中了,如下图:
没错,就这2步骤,解决了免密登录;
通常情况是下,是把你管理的所有机器,互相都添加到各自的信任列表之中;这样你就实现了所有机器的免密登录,无缝切换;
-----------------------一条很骚的分割线-----------------------------
优化步骤:
通常我们不会记住IP地址,
而是把所有需要访问服务器进行命名,hostname,
编辑到/etc/hosts文件之中,
这样就可以通过名称来免密登录;
执行命令:vim /etc/hosts命令,编辑主机映射文件,并保存;
/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.
网友评论