关于Ubuntu 14.x-16.x远程ssh登录的若干问题

2017/02/2513:09:57 发表评论


摘要:本文目标:

1)在Ubuntu中安装openssh服务;

2)ssh远程登录时的若干问题排查。

适应系统:Ubuntu 14.x-16.x 虽然我是在Ubunut16.10系统下操作的,但步骤应该都差不多的。

说明:可能每个人遇到的情况不一样,如果你遇到的现象在本文中未出现过,请把具体步骤及现象说明清楚,在果子哥的博客留言回复。


1. 安装ssh服务端

首先得保证你的Ubuntu系统已经正常连接上互联网,如果这一步还没做好,请移步:http://www.guoziweb.com/archive/181.html

正常连接到互联网后,我们就可以使用apt-get来安装了:

sudo apt-get update
sudo apt-get install openssh-server openssh-client
#启动ssh服务
sudo systemctl start sshd.service

2. 远程登录的若干问题


1)无法使用root用户远程登录


该问题在一些刚接触Ubuntu的用户来说,简直有种想砸了电脑的冲动了,因为他们会把自己的操作步骤描述的非常清楚,每一个步骤都感觉天衣无缝,密码也输入正确了,结果就是死活都登录不了。这里,果子哥要严肃的教育你一下,为什么有喜欢用root用户登录系统的习惯,赶紧用普通用户远程登录下。

还没等我说完,有些性急的童鞋马上就反驳了,我就喜欢用root用户登录,我在CentOS和Fedaro中登录都用root登录操作也没出过什么事。好吧,我承认你们有从来不会踩坑,也从不会误操作把系统文件删除的潜质。那么我来妥协下,告诉你怎么用root身份远程登录。编辑文件:sudo vim /etc/ssh/sshd_config将以下行:

PermitRootLogin prohibit-password

修改成:

PermitRootLogin yes

保存配置文件,接着重启下sshd服务就OK了。

sudo systemctl restart sshd.service

我们可以使用netstat命令来查看下ssh的监听端口是哪个:

sudo netstat -anpl | grep ssh

可能看到的是如下输出:


blob.png


2)远程连接拒绝


第二天,有些童鞋又来问题了,说我昨晚远程ssh连接Ubuntu系统好好的,今天开机后突然连接不了了。别急,喝杯咖啡平静下心情继续看。

首先我们使用ping命令来检测下你的主机网络是否通畅,假设我的服务器IP是192.168.1.10

Windows下打开cmd命令行输入:

ping 192.168.1.10

如果你看到如下画面,那说明网络是通的,否则再回到第一小节去调试好网络再回来:


blob.png


如果上面步骤是OK的,我们再来探测下ssh端口是否已经开放了,默认是22端口,如果你修改了端口,那就去探测你修改后的端口,Windows下需要在控制面板中开启telnet客户端功能:


blob.png


继续:


blob.png


再来:


blob.png


点击“确定”,重新打开cmd命令行输入命令:

telnet 192.168.1.10 22

blob.png

如果你看到以上类似输出,说明了什么?也许你已经恍然大悟了——”Fuck,sshd服务没有启动“

那我们需要把sshd服务启动:

sudo systemctl start sshd.service

此时,再进行端口探测,可能会看到如下输出了:


blob.png


3)第二天开机问题依旧

为什么?因为你没有把sshd服务加入到开机启动啊,赶紧输入一把命令:

sudo systemctl enable sshd.service

3. 天啊!还是没法登录怎么办?


如果你看到了这一步,说明你的问题可能比较严重,到这里可能需要有一些综合的技术或者说经验了。


1)检查Ubuntu的防火墙


输入以下命令查看:

sudo ufw status

可能你会看到如下输出:

blob.png

上图说明,你的系统中启动了防火墙配置,未开放22号端口,此时你可以把22号端口加入到防火墙配置中,或者简单粗暴一点,关闭防火墙。我喜欢简单粗暴型的输入以下命令:

sudo ufw disable

可能会有以下提示:

Firewall stopped and disabled on system startup

说的是在开机启动时会把防火墙禁用掉,此时重启你的系统再试试。


2)查看系统日志


如果前面步骤都测试好了,没有问题,但还是没法登录,我们要出绝招了,把系统日志开起来进行查看,首先安装rsyslog软件:

sudo apt-get install rsyslog
sudo systemctl start rsyslog.service
#修改下日志配置文件,把所有日志信息都记录到/var/log/messages文件中去:
#用vim打开/etc/rsyslog.d/50-default.conf文件增加一行内容如下: 
*.info;mail.none;authpriv.none;cron.none /var/log/messages
#加入开机启动
sudo systemctl enable rsyslog.service

3)重启系统后查看日志


重启系统后,使用如下命令来监控日志输出,开两个终端窗口,分别输入如下命令:

tail -f /var/log/messages
tail -f /var/log/auth.log

此时在Windows中再登录下,看看监控日志有没有什么输出什么异常的蛛丝马迹。我相信经过前面几步的排查,到这里还登录不了,而且日志有输出的话,应该就是一些密码错误或PAM模块阻止登录的提示了,一般可以拷贝对应的报错日志去百度或google就能找到答案。


4)最后的晚餐

经过以前面步骤折腾后,如果问题还没有解决,那可能你的系统真遇到什么麻烦了。此时可尝试卸载ssh服务再重装试下,卸载时,将配置文件也一并卸载了。

sudo apt-get purge openssh-server openssh-client

然后从头再来!!

说明:本文并不是针对某种具体的问题现象进行排错,而是告诉大家排查问题的方式方法——思路决定出路,以此共勉!

  • 微信扫码赞助
  • weinxin
  • 支付宝赞助
  • weinxin

发表评论

您必须才能发表评论!