SSH建立免密通道以及清除原有SSH密钥方法
目录
简介
一、生成密钥
二、建立免密通道
三、查看私钥公钥文件信息
四、验证连接情况
五、常见报错
简介
本文主要实现机器B远程连接机器A,需要将机器A的公钥传输给B。(如若实现A远程连接B,重复步骤修改对象即可)
一、生成密钥
ssh-keygen
然后一路回车即可生成完毕
这里生成的密钥包含自己的公钥以及自己的私钥。
二、建立免密通道(将自己的公钥传给别人,让别人可以免密登录你的服务器)
方式一.已经配置主机别名
ssh-copy-id 别名
例如在A机器内执行
ssh-copy-id B
将A主机的公钥传给B主机
方式二、未配置别名
ssh-copy-id -i id_rsa.pub root@对方ip
例如在A机器内执行如下命令,将自己的公钥传给B机器(B机器的ip地址为192.168.134.141,以root用户登录)
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
注意:第一次建立连接需要输入密码(对方机器的密码),之后连接不需要了
三、查看私钥公钥文件信息
cd /root/.ssh/
当没有建立免密通道时只能看到id_rsa文件和id_rsa.pub文件,authorized_keys和known_hosts文件在建立免密通道之后才会有。
1.查看authorized_keys
这里存的是其他机器的公钥。
2.查看id_rsa
此文件存的是自己的私钥。
3.查看id_rsa.pub
此文件存的是自己的公钥。
4.查看know_hosts
此文件存放已经连接的主机及对应的公钥。
四、验证连接情况
在B机器上输入
ssh [email protected]
没有出现报错并成功登录上A即可(192.168.134.140为机器A的ip地址)
没有操作后请务必记得及时登出,防止搞混机器。
输入以下命令登出
exit
五、常见报错
1.建立免密通道时报错
自己和对面机器要可以通信,如果不能通信,自己的公钥是无法发送给对面机器的。
ping对方的id地址若显示超时大概率是无法通信,请自己搭建好路由或者修改iptables防火墙等。
2.搭建完成之后连接时报错
ssh [email protected]
显示
[root@other ansible]# ssh root@master
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:XKNAZ3JrsoNba9QPGOp+2Ai5R7+2vjgHVUbShbTebiY.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:1
ECDSA host key for master has changed and you have requested strict checking.
Host key verification failed.
则表示机器A公钥已经变化,需要更新A公钥信息。
删除原有的信息:
ssh-keygen -R [A的ip]
然后在A机器上再次执行
ssh-keygen
,然后
ssh-copy-id [email protected]
将自己的公钥传给B机器,这样就可以重新建立免密通信啦!
版权归原作者 久呀 所有, 如有侵权,请联系我们删除。