一文读懂authorized_keys和known_hosts
·
authorized_keys
我们需要本地机器ssh访问远程服务器时为了减少输入密码的步骤,基本上都会在本地机器生成ssh公钥,然后将本地ssh公钥复制到远程服务器的.ssh/authorized_keys中,这样就可以免密登录了。( 服务器之间访问同理)。
流程如下
- 本机生成 ssh公钥;
- 复制本机公钥到远程服务器.ssh/authorized_keys中,authorized_keys文件不存在则创建;
- 本机直接ssh连接远程;
- 结束
known_hosts
第一次连接远程数据库时我们可以发现我们本地的.ssh/目录下多了一个文件known_hosts,里面有我们刚刚连接的服务器的信息(如果以前就存在known_hosts,则会发现多了刚刚连接的服务器的信息)。
known_hosts文件每连接一个新的远程服务器都会产生一份数据,如下:
0.0.0.0 ecdsa-sha2-nistp256 AAAA...........=
包括远程机器ip、远程机器公钥
known_hosts有什么用?
手动修改一下远程机器A的密钥,然后再连接远程机器A,提示:
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxx.
Are you sure you want to continue connecting (yes/no)?
得到类似这种提示,大概意思就是登录远程机器A验证失败,然后向你确定是否需要继续连接。
known_hosts的作用就很明显了,known_hosts的作用就是记录你曾经远程连接过的机器信息。如果远程机器信息不变,则直接连接,如果改变了ssh就会问你一下,小子,你还连不连了?
如果你yes, 他就重新保存一份到known_hosts文件了。
更多推荐
已为社区贡献5条内容
所有评论(0)