实现Linux的ssh免密登录实操保姆级教程
一、业务需求
有多台服务器,每天都需要使用服务器进行一些必要的操作,但每次都需要输入密码会很繁琐且密码太多也记不住,密码给其他人员存在泄密风险(因此想要实现免密登录);且我们在多台服务器之间进行高可用集群部署的时候需要实现免密码登录。
二、实现Linux的ssh免密登录流程
修改Linux上的ssh的默认端口号——及其客户端使用ssh连接不上Linux问题排查解决https://blog.csdn.net/xiaochenXIHUA/article/details/152115750?spm=1001.2014.3001.5501
2.1、在需要免密登录的服务器上生成ssh密钥对
#在Linux中生成ssh密钥对的三种方法#密钥生成示例1(默认生成2048位的rsa密钥对)
ssh-keygen#密钥生成示例2(生成4096位不带密码短语的rsa密钥对)【推荐使用】
#注意:这里的密钥注释通常是邮箱名称(your_email@example.com)也可以自行设置,只要能够区分出来就行;
# -N后面的是设置密钥的访问密码,可以设置也可以不设置
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -N "qwer1234"#密钥生成示例3(生成ed25519类型的密钥对)【十分推荐使用】
#注意:这里的密钥注释通常是邮箱名称(your_email@example.com)也可以自行设置,只要能够区分出来就行
ssh-keygen -t ed25519 -C "your_email@example.com"#更改私钥密码访问密码(系统会提示先输入旧密码,在输入新密码)
ssh-keygen -p -f /root/.ssh/id_rsa
我们这里以ed25519算法生成的密钥为例进行演示说明,详细实操流程如下:
#1-在需要实现无密码登录的服务器上生成密钥对(其中ck@163.com是邮箱地址,可根据自己需要自定义内容,这有助于标识密钥的用途或拥有者)
ssh-keygen -t ed25519 -C "ck@163.com"#2-进入密钥对生成的路径【/root/.ssh】并查看该路径下的所有文件,其中【id_ed25519】是私钥文件;【id_ed25519.pub】是公钥文件
cd /root/.ssh
ll -a
2.2、将公钥添加到需ssh免密登录的远程服务器上
#将公钥添加到需ssh免密登录的远程服务器上
ssh-copy-id -i /root/.ssh/id_rsa.pub user@remote-hostIP#若远程Linux服务器的SSH端口不是默认的22则需要指定端口号【-p 端口】
ssh-copy-id -i /root/.ssh/id_rsa.pub -p 端口号 user@remote-hostIP#如:我这里生成密钥对的服务器IP是【192.168.1.40】,还需要ssh免密登录的服务器IP有【192.168.1.41】【192.168.1.42】
ssh-copy-id -i /root/.ssh/id_ed25519.pub -p 22222 root@192.168.1.40
ssh-copy-id -i /root/.ssh/id_ed25519.pub -p 22222 root@192.168.1.41
ssh-copy-id -i /root/.ssh/id_ed25519.pub -p 22222 root@192.168.1.42ssh-copy-id -i /root/.ssh/id_ed25519.pub -p 22222 ck@192.168.1.41
2.3、测试ssh免密登录到远程服务器是否成功
#测试ssh免密登录远程服务器的方法【ssh 免密登录的服务器IP】
ssh 192.168.1.41
ssh root@192.168.1.41#若远程服务器的端口不是默认的22端口则需要指定端口【ssh -p 免密登录服务器的端口号 用户名称@免密登录服务器的IP】(如:可以使用ck用户免密登录远程服务器192.168.1.41且该服务器的ssh端口是22222)
ssh -p 22222 ck@192.168.1.41#登录到服务器后查看当前是哪个用户及其当前服务器的信息
whoami
hostnamectl
exit
到这里如上图所示可以正常无需密码直接登录则表示配置ssh的免密码登录成功了,恭喜你!
注意:若想要实现在Windows系统上使用第三方ssh工具(如:WindTerm)连接到这台192.168.1.40服务器上,则需要将该服务器上的私钥【/root/.ssh/id_ed25519】下载下来,指定后就可以登录了,如下图所示:
三、线上Linux服务器的优化配置策略
线上Linux服务器的优化设置、系统安全与网络安全策略https://coffeemilk.blog.csdn.net/article/details/149913938