linux ssh 提示 too many authentication failures for root root的身份验证失败太多 解决办法

本文解决SSH登录时因认证失败次数过多导致的连接断开问题,介绍如何通过修改MaxAuthTries参数来增加验证次数,适用于MAC及Linux环境。

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

ssh 提示 “Received disconnect from 192.168.2.11: 2: Too many authentication failures for root”
通常这时候可以 在ssh登陆的时候加上参数 ‘-o PubkeyAuthentication=no’,即可登陆
但是我们在使用opendev调试程序的时候,是无法加参数的。
因此需要修改ssh的配置文件,增加ssh登陆的验证次数即可。

ssh配置文件路径 
MAC下 /etc/sshd_config
Linux下 /etc/ssh/sshd_config

修改选项:
MaxAuthTries 20
默认是6

修改后重启ssh服务即可
systemctl restart sshd

或者

service sshd restart


我的MAC引起此问题的原因是 登陆过多个需要rsa证书登陆的Linux服务器。而通常ssh的MaxAuthTries默认为6次,超过6次就会终止验证。

 

 

### SSH远程登录概述 SSH(Secure Shell)是一种网络协议,用于安全地连接到远程计算机。它提供了加密的数据传输方式,能够保护用户的隐私和数据的安全性[^1]。 #### 配置公钥认证以实现无密码SSH登录 为了简化SSH登录过程并提高安全性,可以通过设置公钥认证来避免每次输入密码。以下是具体方法: ```bash /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" ``` 上述命令会将本地的`id_rsa.pub`公钥复制到目标服务器上的`.ssh/authorized_keys`文件中,从而允许基于密钥的身份验证。 #### 修改SSHD配置文件支持特定功能 如果遇到无法正常通过SSH访问的情况,可能需要调整Kali Linux或其他Linux发行版中的SSH服务配置参数。这通常涉及编辑`sshd_config`文件: ```bash vim /etc/ssh/sshd_config ``` 在此文件里可以启用或禁用多种特性,比如更改监听端口、设定仅允许某些用户组成员登陆等操作[^2]。 #### 常见SSH登录问题及其处理办法 1. **权限被拒绝 (publickey)** 如果尝试使用私钥登录却收到“Permission denied (publickey)”错误消息,则可能是由于客户端未正确指定身份文件或者服务器端未能识别该公共密钥所致。确认已执行过`ssh-copy-id`并将适当路径下的pub传递给目标机器;另外也要核查服务器侧对于此账户是否启用了KeyAuthentication选项以及目录权限设置是否恰当。 2. **Connection refused** 当显示“connection refused by server”时,表明根本没有建立TCP三次握手成功的机会,原因多为防火墙阻止了相应端口号或者是sshd进程根本就没有运行起来。检查iptables规则开放对应port,并启动daemon:`service ssh start`. 3. **Host Key Verification Failed** 此类警告意味着当前试图联系的目标IP地址所返回的指纹与之前记录的不同。删除旧条目即可解决:`sed -i '/<hostname>/d' ~/.ssh/known_hosts`. 4. **Too many authentication failures** 这种情况一般发生在连续多次失败尝试之后触发限制机制。减少单次session内的auth试错次数能有效规避这一现象发生。 ```python import paramiko client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect('hostname', port=22, username='your_username', key_filename='/path/to/private/key') stdin, stdout, stderr = client.exec_command('ls -l') print(stdout.read().decode()) client.close() ``` 以上Python脚本展示了利用Paramiko库自动化执行简单shell指令的一个例子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值