摘要:本文目标:
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
可能看到的是如下输出:
2)远程连接拒绝
第二天,有些童鞋又来问题了,说我昨晚远程ssh连接Ubuntu系统好好的,今天开机后突然连接不了了。别急,喝杯咖啡平静下心情继续看。
首先我们使用ping命令来检测下你的主机网络是否通畅,假设我的服务器IP是192.168.1.10
Windows下打开cmd命令行输入:
ping 192.168.1.10
如果你看到如下画面,那说明网络是通的,否则再回到第一小节去调试好网络再回来:
如果上面步骤是OK的,我们再来探测下ssh端口是否已经开放了,默认是22端口,如果你修改了端口,那就去探测你修改后的端口,Windows下需要在控制面板中开启telnet客户端功能:
继续:
再来:
点击“确定”,重新打开cmd命令行输入命令:
telnet 192.168.1.10 22
如果你看到以上类似输出,说明了什么?也许你已经恍然大悟了——”Fuck,sshd服务没有启动“
那我们需要把sshd服务启动:
sudo systemctl start sshd.service
此时,再进行端口探测,可能会看到如下输出了:
3)第二天开机问题依旧
为什么?因为你没有把sshd服务加入到开机启动啊,赶紧输入一把命令:
sudo systemctl enable sshd.service
3. 天啊!还是没法登录怎么办?
如果你看到了这一步,说明你的问题可能比较严重,到这里可能需要有一些综合的技术或者说经验了。
1)检查Ubuntu的防火墙
输入以下命令查看:
sudo ufw status
可能你会看到如下输出:
上图说明,你的系统中启动了防火墙配置,未开放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
然后从头再来!!
说明:本文并不是针对某种具体的问题现象进行排错,而是告诉大家排查问题的方式方法——思路决定出路,以此共勉!
- 微信扫码赞助
-
- 支付宝赞助
-