linux用ssh-keygen配置ssh免密码登录(互信)超详细解读(跳过各种坑)

本文详细介绍了在Redhat和CentOS环境下配置SSH免密码登录的过程,包括修改ssh配置文件、生成公钥和私钥、设置目录权限等关键步骤,确保在多台服务器间实现安全便捷的远程管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试环境:redhat6.5和centos7.6
主机IP: public@192.168.55.66(hostname:master)
从机1IP: public@192.168.55.67(hostname:slave1)
从机2IP: public@192.168.55.68(hostname:slave2)
注:需要与哪一个用户互信,就用哪个用户创建免密
一、准备工作
1. 打开本机的ssh的配置文件,每台机器都需要改
如果没有sudo的权限,需要用root用户操作

	sudo vi /etc/ssh/sshd_config

把以下内容的行注释符号“#”删除
开放允许密钥认证

	RSAAuthentication yes
	PubkeyAuthentication yes
	AuthorizedKeysFile      .ssh/authorized_keys
  1. 然后重新启动sshd的服务,需要用root用户操作
    注:一定要检查ssh的服务是否正常,如果不正常,重启失败,可能会造成远程连接不上的问题
	service sshd restart
  1. 需要修改下安全配置,即关闭selinux
	vi /etc/selinux/config
	将
    SELINUX=enforcing
	修改为
    SELINUX=disabled 

二、配置SSH免密码登录
4. 生成公钥和私钥(可以只一路回车,生成默认的名字,或者自定义名字)

	ssh-keygen -t rsa

在这里插入图片描述
能看到最后生成了一串乱码方框,说明配置成功。
默认在 ~/.ssh目录生成两个文件:
id_rsa :私钥
id_rsa.pub :公钥
注意:生成的公钥,有可能最后面是用户名加主机名,例如public@master,最好是将其修改为用户名加主机IP地址,如public@192.168.55.66
2.生成公钥认证文件,并更改权限

	chmod 700 ~/.ssh/
	chmod 600 ~/.ssh/authorized_keys
	如果authorized_keys这个文件,没有,可以把本机生成的公钥导入此文件
	cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
	这样还可以测试本机到本机的免密是否成功,如果ssh本机到本机都需要密码,说明存在其它问题。

3.将生成的公钥认证文件复制到其他节点机器

	scp ~/.ssh/id_rsa.pub public@192.168.55.67:/home/public/id_rsa.pub
	scp ~/.ssh/id_rsa.pub public@192.168.55.68:/home/public/id_rsa.pub

三、将上面的步骤在另外的几台机器上再操作一遍,将公钥都写入~/.ssh/authorized_keys这个文件中,最后再测试是否可用。
当前如果在192.168.55.66这台机器上

ssh 192.168.55.66
如果这时还需要密码,很可能是目录权限问题。查看 ll /home/ 当前用户此处是public,如果目录/home/public权限是777就不行,权限中只能本用户可以写,其它用户不能有写的权限,将权限改为755或者700。
chmod 700 /home/public
然后再试,一般就会免密成功。

注意:文件~/.ssh/known_hosts,当你ssh登录时,会自动写入登录主机的相关信息,不管成不成功,此文件都会写入,所以当你登录还需要密码时,这个文件里面也会记录登录的信息。
如果有多台机器做互信,需要把每台的公钥都放在authorized_keys文件后,就都可以互访问了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值