authorized_keys

我们需要本地机器ssh访问远程服务器时为了减少输入密码的步骤,基本上都会在本地机器生成ssh公钥,然后将本地ssh公钥复制到远程服务器的.ssh/authorized_keys中,这样就可以免密登录了。( 服务器之间访问同理)。
流程如下

  1. 本机生成 ssh公钥;
  2. 复制本机公钥到远程服务器.ssh/authorized_keys中,authorized_keys文件不存在则创建;
  3. 本机直接ssh连接远程;
  4. 结束
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文件了。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐