我正在一个 unix 服务器上工作,使用 plink 或 session.net(一个打开与服务器的 ssh 连接并运行命令的 C# 模块)通过 ssh 进入机器。
一切都很好,直到周一我们重启机器。现在,每当我尝试使用该程序访问机器时,它都会执行类似禁止我的 IP 地址的操作。
我试过了,vi /etc/hosts.deny
但那里什么都没有,我只有读取权限hosts.allow
。我不太了解 unix 系统管理,但我确实需要这台计算机停止禁止我的 ipaddress。(我使用的用户名和密码是正确的,因为当我使用 putty 和 winscp 时,服务器不会自动禁止我的 IP。)
谢谢您的帮助。
编辑:
我找到了
/sbin/iptables
,但是上面说不允许/sbin/iptables -L -v
在电脑上以 root 身份执行我的老板
iptables -L -v
以 root 身份运行,但那里没有任何关于禁令的信息我发现,经过一段时间(大约一个小时)后,对我的 IP 地址的禁令或封锁就会解除,但当我登录机器时,禁令或封锁很快就会重新建立
rsa 加密和自动登录不能解决问题
重新启动机器确实会导致它允许 1 到 4 个 plink,然后它会拒绝来自 ip 地址的所有新连接
$ cat /etc/*release 20110420_1358 CentOS 版本 5.5(最终版) $ cat /etc/hosts.deny hosts.deny 此文件描述了以下主机的名称: 不允许使用本地 INET 服务,已决定 由'/usr/sbin/tcpd'服务器。 portmap 行是多余的,但它可以提醒你 新的安全端口映射使用 hosts.deny 和 hosts.allow。特别是 您应该知道 NFS 使用端口映射! $ 拒绝主机 fail2ban /usr/bin/which:(/usr/kerberos/bin:/opt/454/bin:/usr/local/bin:/bin:/usr/bin:/home/adminrig/bin)中没有拒绝主机 /usr/bin/which:(/usr/kerberos/bin:/opt/454/bin:/usr/local/bin:/bin:/usr/bin:/home/adminrig/bin)中没有 fail2ban $ tail --lines=50 /var/log/auth.log /var/log/secure tail:无法打开“/var/log/auth.log”进行读取:没有此文件或目录 tail:无法打开“/var/log/secure”进行读取:权限被拒绝
答案1
iptables 中有一个类似这样的规则导致它无法工作:
iptables -I INPUT -p TCP --dport 22 -m state --state NEW -m limit --limit 4/minute --limit-burst 5 -j ACCEPT
答案2
如果错误消息类似于;
Received disconnect from 123.123.123.123: 2: Too many authentication failures for userXXX
那么它实际上并没有禁止你,只是你尝试使用多个 ssh 密钥,你没有使用一些选项在脚本中强制密码验证,例如ssh -o PubkeyAuthentication=no [email protected]