前言
有时我们在登录linux主机的时候不想要输入密码,就想要配置免密登录,本文就来看看如何实现这种配置。
前置知识
在linux每个用户的家目录下有个.ssh的隐藏文件,里面一般会有四个文件
authorized_keys: 存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥。
id_rsa: 生成的私钥文件
id_rsa.pub: 生成的公钥文件
known_hosts: 已知的主机公钥清单
如果将我们生成的公钥放到相应主机的对应用户的authorized_keys文件下,就可以实现免密登录。
具体步骤
1.在一台机器上生成公私钥对,生成公私钥对的命令是ssh-keygen
通过执行命令 ssh-keygen -t rsa 来生成我们需要的密钥。
可以看到在/root/.ssh/目录下生成了两个文件id_ras.pub id_rsa
2.接下来就需要将我们的公钥放到我们需要登录的机器上
进行相应的用户的家目录下,如root用户,是~/.ssh/目录,查看是否存在authorized_keys文件,如果没有创建一个,然后将id_ras.pub的内容复制过去
3.此时就可以在存在私钥的主机上通过ssh直接访问
到此,我们的 ssh 免密钥登录就大功告成。
额外知识
复制秘钥其实有三种方式:一是通过 ssh-copy-id 命令,二是通过 scp 命令,三是手工复制。上面我们使用的是手工复制。
方式一,通过 ssh-copy-id 命令设置。最后一个参数是我们要免密钥登录的服务器 ip 地址。
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100
方式二,通过 scp 命令直接将该文件远程复制过去,使用这种方式需要注意,如果你之前已经配置了其它服务器上的密钥,这是使用这种方法,就会覆盖掉你原来的密钥,这时候是不建议使用这种方式的,如果你是先将该文件复制到服务器上的一个目录下,然后在使用追加的方式,将密钥追加到 authorized_keys 也是完全 OK 的。如果你只有两台服务器也是可以直接复制到文件。
scp -p ~/.ssh/id_rsa.pub root@:/root/.ssh/authorized_keys
下面是我的微信公众号,每周会分享关于安全方面的各种知识,有兴趣的可以关注一下,谢谢大家。