linux SSH互信不生效问题排查

本文详细介绍了如何在Linux上为用户app创建RSA密钥,配置SSH免密码登录,同时处理了SELinux状态和目录权限问题,以确保顺利登录。

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

linux上创建一个用户app,切换到app用户,生成rsa密钥串,实现app用户的免密码登陆:

#生成密钥
ssh-keygen -t rsa

#将自己的~/.ssh/id_rsa.pub内容均加到自己的~/.ssh/authorized_keys文件里
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

#权限
chmod 600 ~/.ssh/authorized_keys

 然后进行免密登陆:

ssh app@10.134.32.1
password:

发现仍然需要输入密码。排查过程如下:

1、SELINUX:

vi /etc/selinux/config 
 
# This file controls the state of SELinux on the system.
# SELINUX=disabled
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

确保SELINUX=disabled

2、查看/var/log/secure日志

<think>嗯,用户需要一份关于在两台Linux服务器上部署Nginx+Keepalived高可用配置的文档。首先,我得回忆一下Keepalived和Nginx结合实现高可用的原理。Keepalived通过VRRP协议实现虚拟IP的漂移,当主服务器故障时,备用服务器接管虚拟IP,从而保证服务不间断。 首先,需要确定用户的环境,比如操作系统版本,是否需要安装Nginx和Keepalived。用户提到是Linux服务器,可能基于CentOS或Ubuntu。这里可能需要给出通用的安装步骤,或者注明不同系统的命令差异。不过用户可能更熟悉CentOS,所以暂时用yum来示例。 接下来,网络配置部分。需要两台服务器,设置虚拟IP。要确保这两台服务器的防火墙允许VRRP协议,通常协议号是112,或者直接关闭防火墙进行测试。这点需要提醒用户注意,否则可能导致VRRP通信失败。 然后是Nginx的安装和配置。确保两台服务器都安装了Nginx,并且配置一致。可能需要提供一个简单的Nginx配置示例,比如默认页面,方便测试。用户可能需要自定义配置,但文档需要保持通用性。 Keepalived的配置是关键部分。主备服务器的配置文件中,需要设置state为MASTER和BACKUP,优先级不同,虚拟路由ID要一致。同时,需要配置检测Nginx进程的脚本,这样当Nginx崩溃但服务器还在运行时,Keepalived能主动切换。这个脚本需要放置在正确的位置,并且有执行权限。需要提醒用户检查脚本路径和权限,否则可能导致检测失效。 测试部分需要详细说明如何验证故障转移,比如关闭主节点的Nginx或直接关机,观察虚拟IP是否漂移到备节点。此外,要检查日志,/var/log/messages或journalctl,根据系统不同可能有差异,需要注明。 可能遇到的常见问题包括虚拟IP无法访问,可能是防火墙问题,或者网络接口名称不一致。需要提醒用户根据实际环境修改网卡名称,比如ens192或eth0。另外,SELinux可能阻止脚本执行,建议临时关闭或调整策略。 最后,注意事项部分要强调配置一致性、监控和日志的重要性,以及定期测试的必要性。用户可能需要进一步的定制,比如邮件通知,但基础文档应覆盖核心步骤。 需要确保文档结构清晰,步骤明确,命令准确无误。同时,使用中文,避免术语错误,让用户容易理解和操作。可能用户是系统管理员或有一定Linux基础的用户,所以不需要太基础的操作说明,但关键点仍需详细说明,比如脚本的创建和权限设置。</think>``` # Nginx+Keepalived双节点高可用部署文档 ## 一、环境准备 ### 1.1 服务器配置 | 节点 | IP地址 | 角色 | 虚拟IP(VIP) | |--------|--------------|--------|------------| | Node1 | 192.168.1.10 | MASTER | 192.168.1.100 | | Node2 | 192.168.1.11 | BACKUP | 192.168.1.100 | ### 1.2 前置条件 1. 两台服务器网络互通 2. 关闭防火墙或放行VRRP协议(协议号112) 3. 同步服务器时间 4. 配置SSH密钥互信(可选) ## 二、软件安装 ### 2.1 安装Nginx(双节点执行) ```bash # CentOS yum install epel-release -y yum install nginx -y systemctl enable nginx # Ubuntu apt install nginx -y systemctl enable nginx ``` ### 2.2 安装Keepalived(双节点执行) ```bash # CentOS yum install keepalived -y # Ubuntu apt install keepalived -y ``` ## 三、配置Nginx ### 3.1 基础配置(双节点相同) ```nginx # /etc/nginx/nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; events { worker_connections 1024; } http { server { listen 80; location / { root /usr/share/nginx/html; index index.html; } } } ``` ### 3.2 启动服务 ```bash systemctl start nginx ``` ## 四、配置Keepalived ### 4.1 创建监控脚本(双节点执行) ```bash vim /etc/keepalived/check_nginx.sh ``` ```bash #!/bin/bash count=$(ps -ef | grep nginx | grep -v grep | wc -l) if [ $count -eq 0 ]; then systemctl stop keepalived fi ``` ```bash chmod +x /etc/keepalived/check_nginx.sh ``` ### 4.2 Master节点配置 ```bash vim /etc/keepalived/keepalived.conf ``` ```conf global_defs { router_id LVS_MASTER } vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" interval 2 weight -50 } vrrp_instance VI_1 { state MASTER interface ens192 # 修改为实际网卡名 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100/24 } track_script { chk_nginx } } ``` ### 4.3 Backup节点配置 ```conf global_defs { router_id LVS_BACKUP } vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" interval 2 weight -50 } vrrp_instance VI_1 { state BACKUP interface ens192 # 修改为实际网卡名 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100/24 } track_script { chk_nginx } } ``` ### 4.4 启动服务 ```bash systemctl start keepalived systemctl enable keepalived ``` ## 五、验证配置 ### 5.1 检查虚拟IP ```bash ip addr show ens192 | grep 192.168.1.100 ``` ### 5.2 故障转移测试 1. 在主节点执行:`systemctl stop nginx` 2. 观察VIP是否漂移到备节点 3. 恢复主节点服务:`systemctl start nginx` ## 六、常见问题排查 1. VIP未生效:检查防火墙设置和网络连通性 2. 状态切换异常:查看日志`journalctl -u keepalived -f` 3. 脚本执行失败:检查脚本权限和路径设置 ## 七、注意事项 1. 确保双节点配置中`virtual_router_id`一致 2. 生产环境建议配置邮件报警通知 3. 定期进行故障转移演练 4. 监控Keepalived和Nginx进程状态 > 可根据实际需求调整检测间隔、优先级等参数。建议使用Ansible等工具实现配置同步。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赶路人儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值