一、问题现象:
错误提示如下:CentOS出现连接被拒--ssh:connect to host localzly (自己的主机名)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地址的映射关系:(如果存在就看看是否ip错误!!!!!)
vi /etc/hosts 或(vim /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