今天服务器突然连不上,试了N多种办法,首先是排除以下几点
方法一:
vi /etc/ssh/sshd_config
找到#PermitRootLogin no将其修改为PermitRootLogin yes // /yes表示root可以ssh登录。可能这里是no
把PasswordAuthentication设成yes
/etc/init.d/ssh start // 或者service ssh start启动SSH服务
/etc/init.d/ssh status //查看SSH状态
对我无效
方法二:
1.查看sshd是否正确在运行
netstat -anp| grep sshd
2.如果没有运行使用 service sshd restart 重启服务
对我无效:显示SSH运行正常
方法三:.查看防火墙
#/etc/init.d/iptablesstatus
如果22端口被限制则无法登陆。
放开端口22
#/sbin/iptables -IINPUT -p tcp –dport 22 -j ACCEPT
#/etc/rc.d/init.d/iptablessave
对我无效: 我的提示没有防火墙方法(why? 下次再分解) 至少说明不是防火墙封端口的原因
再试了以下解决办法
其实这个问题是从 SCP 过来的。用 SCP 在两台 Linux 服务器之间传送备份文件。输入完 root 密码后,总是出现 Permission denied, please try again.
错误字样。用 Passwd 命令修改目标服务器 root 密码后,问题还是一样。判断来判断去,问题依旧。
在网上找到几条解决办法:
1、/home 权限问题:
如果 /home 只支持 root 访问,那么不妨试一下 /tmp ,然后用 mv 命令再转移
2、/etc/ssh/sshd_config
配置问题:
有人说这个配置文件被修改或优化了,找到里边的 PermitRootLogin
选项,将 no 改为 yes
所有方法都试过了,甚至还改过 passwd, shadow
的权限,都无效。后来重新建立了个用户,授予 root 权限,实验了一下,成功!既然别的账户能成功,为什么root不成呢?再看看putty,发现连接SSH,输入密码后也出现了Access Denied
字样。而密码千真万确输入的100%正确。
最后终于找到了解决办法,原来问题还是出在了 sshd_config 里边,在文件最后发现有个 AllowUsers 选项,在后边加上 root 然后重启 sshd 即可。
代码如下:
service ssh restart
再看看 SSH 连接和 SCP 命令传输。都已经可以用了。