CentOS7配置免密码登陆

本文详细介绍了如何在三台主机上自动化部署SSH密钥对,包括创建SSH密钥、复制公钥到其他主机、生成并配置authorized_keys文件、修改文件权限以及调整ssh服务配置等内容。

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

3台主机

192.168.30.207 Master

192.168.30.251 Node1

192.168.30.252 Node2


三台主机检查 ~/.ssh 文件夹没有则新建

ssh-keygen -t rsa 一路狂按回车,最终生成(id_rsa,id_rsa.pub两个文件).

把id_rsa.pub 复制到251,252两台node上去.

scp ~/.ssh/id_rsa.pub root@192.168.30.251:~/.ssh

scp ~/.ssh/id_rsa.pub root@192.168.30.252:~/.ssh 

切换到251,252:

生成authorized_keys.

cat id_rsa.pub >> authorized_keys

然后把authorized_keys scp到207.

scp ~/.ssh/authorized_keys root@192.168.30.207:~/.ssh 

然后把三台机器 .ssh/ 文件夹权限改为700,authorized_keys文件权限改为600(or 644).

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys


三台主机改配置文件:

vi /etc/ssh/sshd_config

#禁用root账户登录,如果是用root用户登录请开启
PermitRootLogin yes

# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no

# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

# 有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no

启动ssh服务

/bin/systemctl start sshd.service

reboot

然后试试效果



### 如何在 CentOS 7 上设置 SSH 免密登录 #### 准备工作 为了确保能够成功配置免密码登录,在开始之前需确认已安装并启动了 OpenSSH 和 sshd 服务。通常情况下,默认已经安装。 #### 创建公钥和私钥对 如果本地机器尚未创建过 SSH 密钥,则需要先生成一对新的 RSA 密钥: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 上述命令将会提示指定保存位置(默认即可),以及输入 passphrase(可以为空)。完成后会在 `~/.ssh` 文件夹下找到两个新文件:`id_rsa`(私钥) 及其对应的公开部分 `id_rsa.pub`[^3]。 #### 将公钥复制到目标服务器 有多种方式可把客户端产生的公钥传输至远程主机,这里介绍两种常用方法之一——利用 `ssh-copy-id` 工具完成操作非常简便快捷: ```bash ssh-copy-id user@remote_host_ip_address ``` 此指令会自动连接到指定 IP 地址的目标设备,并询问当前用户的密码验证身份;一旦认证通过即刻上传 `.pub` 文件中的内容追加进对方家目录下的 `authorized_keys` 中去[^4]。 另一种手动的方式则是直接编辑远程计算机上的 `~/.ssh/authorized_keys` 文件并将本地生成的公钥粘贴进去。不过这种方式相对复杂一些,推荐初学者采用前一种方案。 #### 测试无密码访问功能 现在应该可以从源节点无需再次提供任何凭证就能顺利登陆目的端了。尝试执行如下命令检验效果: ```bash ssh user@remote_host_ip_address ``` 如果一切正常的话,此时应当可以直接进入远端 shell 而不需要重新输入密码了[^1]。 #### 安全建议 虽然实现了便捷性,但也请注意适当调整权限以保障安全性。对于 `/home/user/.ssh` 目录及其内部的所有文件来说,理想的权限设定应该是这样的: - 对于整个`.ssh`目录本身而言,应将其设为仅允许属主读写(`chmod 700 ~/.ssh`) - 授权列表文件`authorized_keys`则只需让拥有者具有读取权利就足够了 (`chmod 600 ~/.ssh/authorized_keys`) 这样既不影响正常使用又能有效防止潜在风险的发生[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值