SSH建立RSA互信时遇到的问题分析

本文档详细介绍了SSH RSA密钥配置过程中可能遇到的问题及其解决办法,包括重启sshd服务、调整.ssh目录权限、确保sshd配置正确等关键步骤。

关于SSH 如何建立RSA,这里就不罗列了,网上一搜一箩筐。这里简要的说一下配置不成功可能出现的问题。

先说明一下流程:

1 请求SSH

[root@mac03 .ssh]ssh user@192.168.33.24

2 检查root下的.ssh目录中的id_rsa.pub内容

3 到192.168.33.24的/home/user/.ssh中查找授权key,authorized_keys是否包含2里面的id_rsa.pub内容

4 如果包含,SSH请求通过,以user身份登陆192.168.33.24中。

 

可能出现的问题:

 1 配置完authorized_keys要重新启动sshd服务

/etc/init.d/sshd restart

 

2 .ssh文件夹具有可访问的权限(针对普通用户而言,.ssh文件夹要具有更高的读取权限,因为要进行第3步)

chmod -R 750 /home/user/.ssh


3 作为被访问放的sshd服务配置是否正确,开启RSA认证,公钥认证,授权文件路径(尽管默认是读取的)

vi /etc/ssh/sshd_config


配置结果:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes


4 有时候,会因为.ssh中的权限过于开放导致互信失效,提示权限过于OPEN,其实是SSH检测到您的id_rsa私钥权限过高所致

chmod u+rw /home/user/.ssh/id_rsa


5 在生成RSA之后,一旦更改过user密码会对authorized_keys有影响,只能重新在生成个rsa文件了

配置SSH免密互信登录是一种常见的需求,特别是在自动化运维和集群环境中。实现SSH免密登录的核心原理是使用公钥认证机制。以下是详细的配置步骤: ### 1. 生成SSH密钥对 在客户端主机上生成SSH密钥对(通常为`id_rsa`和`id_rsa.pub`)。如果密钥已经存在,可以跳过此步骤。 ```bash ssh-keygen -t rsa ``` 在生成密钥,可以选择是否设置密钥密码。如果希望完全免密登录,则可以留空密码。 ### 2. 将公钥复制到目标主机 使用`ssh-copy-id`命令将客户端的公钥复制到服务端的`~/.ssh/authorized_keys`文件中。假设客户端的IP为`192.168.240.1`,目标主机的IP为`192.168.240.2`,并且目标主机的用户名为`user`,则命令如下: ```bash ssh-copy-id user@192.168.240.2 ``` 此命令会自动将`~/.ssh/id_rsa.pub`文件内容追加到目标主机的`~/.ssh/authorized_keys`文件中。 ### 3. 配置SSH服务端允许公钥认证 确保服务端的SSH配置文件`/etc/ssh/sshd_config`中包含以下设置: ```bash PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 ``` 修改配置后需要重启SSH服务以应用更改: ```bash sudo systemctl restart sshd ``` ### 4. 测试SSH免密登录 完成上述步骤后,可以通过以下命令测试免密登录: ```bash ssh user@192.168.240.2 ``` 如果一切正常,将直接登录目标主机而无需输入密码。 ### 5. 处理常见问题 如果出现以下错误: ``` RSA host key for 192.168.1.131 has changed and you have requested strict checking. Host key verification failed. ``` 这意味着目标主机的SSH密钥发生变化,通常是由于目标主机重新生成了密钥或更换了系统。可以通过以下方式解决: - 删除本地的已知主机记录: ```bash ssh-keygen -R 192.168.1.131 ``` - 重新尝试连接,系统会提示是否接受新的主机密钥。 ### 6. 配置双向免密登录 如果需要实现双向免密登录(例如A免密登录B,同B免密登录A),则需要在两台主机上分别执行上述步骤。具体来说: - 在A上生成密钥,并将公钥复制到B。 - 在B上生成密钥,并将公钥复制到A。 这样,两台主机即可实现互信免密登录。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值