解决ubuntu 下 SSH无法连接的问题

34530阅读 0评论2020-04-30 mcc543
分类:LINUX

使用Ubuntu,经常需要需要SSH远程连接,但是有时候会出现问题,难以捉摸,下面参考别人的,在结合自己的尝试总结下吧。
服务器配完ubuntu系统以及LNMP环境以后,想用WINSCP远程登录,就需要开启SSH服务才能支持。

 SSH服务分为客户端和服务器。顾名思义,我想用putty远程登录Ubuntu服务器,所以需要安装SSH server。

OK,下面介绍如何开启SSH服务。

一、检查是否开启SSH服务

因为Ubuntu默认是不安装SSH服务的,所以在安装之前可以查看目前系统是否安装,通过以下命令:

 ps -e|grep ssh

输出的结果ssh-agent表示ssh-client启动,sshd表示ssh-server启动。我们是需要安装服务端所以应该看是否有sshd,如果没有则说明没有安装。

二、安装SSH服务

 sudo apt-get install openssh-client 客户端

 sudo apt-get install openssh-server 服务器

  或者

 apt-get install ssh

三、启动SSH服务

 sudo /etc/init.d/ssh start

四、修改SSH配置文件

可以通过SSH配置文件更改包括端口、是否允许root登录等设置,配置文件位置:

 /etc/ssh/sshd_config

 默认是不允许root远程登录的,可以再配置文件开启。

 sudo vi /etc/ssh/sshd_config

 找到PermitRootLogin without-password 修改为PermitRootLogin yes (本人遇到过)

 五、重启SSH服务

 service ssh restart

 即可通过winscp 、putty使用ROOT权限远程登录。

 启用root用户:sudo passwd root      //修改密码后就启用了。

 客户端如果是ubuntu的话,则已经安装好ssh client,可以用下面的命令连接远程服务器。

$ ssh xxx.xxx.xxx.xxx


 简单介绍下SSH:

SSH:是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能(使用TCP的22号端口)。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。

在RHEL 5系统中使用的是OpenSSH服务器由openssh,openssh-server等软件包提供的(默认已经安装),并以将sshd添加为标准的系统服务。

SSH提供一下两种方式的登录验证:

1、密码验证:以服务器中本地系统用户的登录名称,密码进行验证。

2、秘钥对验证:要求提供相匹配的秘钥信息才能通过验证。通常先在客户机中创建一对秘钥文件(公钥和私钥),然后将公钥文件放到服务器中的指定位置。

注意:当密码验证和私钥验证都启用时,服务器将优先使用秘钥验证。

SSH的配置文件:

sshd服务的配置文件默认在/etc/ssh/sshd_config,正确调整相关配置项,可以进一步提高sshd远程登录的安全性。

配置文件的内容可以分为以下三个部分:

1、常见SSH服务器监听的选项如下:

Port 22                    //监听的端口为22

Protocol 2                //使用SSH V2协议

ListenAdderss 0.0.0.0    //监听的地址为所有地址

UseDNS no                //禁止DNS反向解析

2、常见用户登录控制选项如下:

PermitRootLogin no            //禁止root用户登录

PermitEmptyPasswords no        //禁止空密码用户登录

LoginGraceTime 2m            //登录验证时间为2分钟

MaxAuthTries 6                //最大重试次数为6

AllowUsers user            //只允许user用户登录,与DenyUsers选项相反

3、常见登录验证方式如下:

PasswordAuthentication yes                //启用密码验证

PubkeyAuthentication yes                    //启用秘钥验证

AuthorsizedKeysFile .ssh/authorized_keys    //指定公钥数据库文件

以前出现问题,不知道怎么解决,后来发现需要修改/etc/ssh/sshd_config,把里面的字段修改合适,基本就没有问题了,PermitEmptyPasswords no   //禁止空密码用户登录,就是上次遇到的问题,之前是禁止root登录的,修改之后,就解决啦,如果下次遇到同样的问题,记得去查看下这个文件了,或许就能迎刃而解了。

上一篇:进程的引入
下一篇:c语言一个类型引发的思考