商务合作加Q:411239339

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

浏览:252次阅读
没有评论

共计 2468 个字符,预计需要花费 7 分钟才能阅读完成。


摘要 :本文目标:

1)在 Ubuntu 中安装 openssh 服务;

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

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

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


1. 安装 ssh 服务端

首先得保证你的 Ubuntu 系统已经正常连接上互联网,如果这一步还没做好,请移步:https://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

可能看到的是如下输出:


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


2)远程连接拒绝


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

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

Windows 下打开 cmd 命令行输入:

ping 192.168.1.10

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


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


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


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


继续:


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


再来:


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


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

telnet 192.168.1.10 22

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

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

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

sudo systemctl start sshd.service

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


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


3)第二天开机问题依旧

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

sudo systemctl enable sshd.service

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


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


1)检查 Ubuntu 的防火墙


输入以下命令查看:

sudo ufw status

可能你会看到如下输出:

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

上图说明,你的系统中启动了防火墙配置,未开放 22 号端口,此时你可以把 22 号端口加入到防火墙配置中,或者简单粗暴一点,关闭防火墙。我喜欢简单粗暴型的 关于 Ubuntu 14.x-16.x 远程 ssh 登录的若干问题 输入以下命令:

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

然后从头再来!!

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

正文完
创作不易,扫码加点动力
post-qrcode
 0
果子
版权声明:本站原创文章,由 果子 于2017-02-25发表,共计2468字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。
评论(没有评论)