一、问题现象:

  错误提示如下:CentOS出现连接被拒--ssh:connect to host centos-py port 22: Connection refused

 

二、问题原因:

我在配置ssh免登录时候出现该问题,其错误原因主要有以下几种:

1)SSH服务未安装

     此时,采用在线安装的方式就行下载安装。

  • 命令为:   yum -y install openssh-server;

        然后启动ssh服务: service sshd start。

2)ssh服务对应22号端口未开启

          ss -lnt :使用该命令查询22号端口是否开启,如果为下图所示为正常开启,

            否则要先开启22号端口。

             如果要修改端口,查看或编辑SSH服务配置文件,使用命令 vi /etc/ssh/sshd.config,进入后把 port 后面默认的22端口改成别的端口即可(注意前面的#号要去掉)。

3)还有一种特殊情况:

    以上两点都没有问题,并且执行ssh localhost命令也没有问题,但执行ssh hostname(hostname为你自己的主机名)命令时出错。(此时,我们可以思考为什么用localhost没有问题,而用我们的主机名却有问题?注意看下图第一行配置,有个127.0.0.1到localhost的映射;于是,我们可以思考是否是因为我们没有配置IP地址到我们的主机的映射呢?)

      出现这种情况就是因为我们没有在hosts文件中进行相应的配置,应该在其中加入hostname与IP地址的映射关系:

vi /etc/hosts

    最后,输入ssh (我的hostname),然后出现了以下内容,表示我们的问题得到了解决。

 

三、其他问题排查:

       还需要开启ssh服务,需要使用命令sudo /etc/init.d/ssh start开启ssh。

       如果出现以下的错误:

       需要在命令行输入ssh-keygen -A 产生公钥key,然后再开启ssh服务即可。

总之,

  • 步骤是先安装openssh-server
  • 然后通过sudo /etc/init.d/ssh start开启服务
  • 如果有问题需要产生key,使用命令ssh-keygen -A
     
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐