连接到主机localhost端口22:连接被拒绝


86

在本地计算机上安装hadoop时,出现以下错误

ssh -vvv localhost 
OpenSSH_5.5p1, OpenSSL 1.0.0e-fips 6 Sep 2011 
debug1: Reading configuration data /etc/ssh/ssh_config    
debug1: Applying options for * 
debug2: ssh_connect: needpriv 0 
debug1: Connecting to localhost [127.0.0.1] port 22. 
debug1: connect to address 127.0.0.1 port 22: Connection refused 
ssh: connect to host localhost port 22: Connection refused

有什么可以比更改端口号帮助我解决此错误?

Answers:


116

如果要在Mac OSX上安装Hadoop,请确保先打开“系统偏好设置”下的远程登录”,然后打开文件共享”。这在我的机器上工作。

远程登录


2
仅供参考,这对我(通常是为将来的用户)解决此错误的工作,似乎与Hadoop无关。谢谢!
joedragons

83
  1. 使用以下命令删除SSH:

    sudo apt-get remove openssh-client openssh-server
    
  2. 使用以下命令再次安装SSH:

    sudo apt-get install openssh-client openssh-server
    

它将解决您的问题。


2
尽管答案听起来不可思议它完美的作品,甚至在端口22
user1613360

为什么有必要将其删除?如果在那里,问题将不存在。
罗恩侯爵,

2
我想原因是它没有正确安装前
Divyang沙阿

1
像魅力一样工作:)
Ashis Parajuli

1
@patrick如果部分添加或不在一致的阶段,则需要删除过程。
Divyang Shah

32

你已经sshd安装好了吗?您可以使用以下方法进行验证:

which ssh
which sshd

有关详细信息,您可以访问此链接


1
我尝试给sudo apt-get install openssh-server命令,它开始询问hduser密码,在这里我没有为用户创建任何密码,我怎么知道默认密码
Surya 2013年

我累了哪个ssh,哪个sshd,这给了我内部路径'/ usr / bin / ssh',它们已经安装在我的机器上了
Surya 2013年

3
ssh是客户端,sshd是服务器。要安装sshd使用sudo apt-get install openssh-server。为创建用户帐户时 hduser,您必须已创建密码。不要将其与空密码短语混淆,您可能已将无密码ssh从hduser帐户设置为本地主机上的密码。
2015年

23

尝试安装整个SSH软件包:

sudo apt-get install ssh

ssh在Ubuntu上执行了命令,但是却遇到了错误。完全安装后,所有问题都解决了。


1
这为我解决了,这正是我的情况(我也已经安装并运行了sshd,开箱即用)。在Ubuntu 19.04上。
乔纳森·哈特利

11

检查此端口是否打开。也许您的SSH守护程序没有运行。查看sshd是否正在运行。如果没有,则启动它。


我尝试给sudo apt-get install openssh-server命令,它开始询问hduser的密码,在这里我没有为该用户创建任何密码,我怎么知道hduser的默认密码
Surya

1
不,它正在询问您要安装的linux系统的root / sudo用户的密码。
abhinav

[root @ localhost .ssh]#ssh / usr / bin / ssh [root @ localhost .ssh]#sshd / usr / sbin / sshd,ssh已安装在我的机器上
Surya 2013年

1
然后运行sshd恶魔/bin/etc/init.d sshd start
abhinav

sshd re-exec需要使用绝对路径执行,这是来自路径的消息
Surya 2013年

10

我做了以上所有建议,但没有用。然后,我重新启动ssh服务,它可以工作。这是我的工作:

service ssh restart

然后我重做

ssh localhost

现在,我可以连接到本地主机了。希望能帮助到你


6

确保/etc/hosts.allow包含:

ssh:ALL:allow
sshd:ALL:allow

要么

ssh:localhost:allow
sshd:localhost:allow

或-其他一些变体

ssh:{host1,host2,host3...}:allow
sshd{host1,host2,host3...}:allow

确保文件中的第一行不以ALL:ALL:DENY开头

NOTHING将能够与主机...在任何端口上进行通信。


完美的答案!
Kanuj Bhatnagar

5

如果重新启动服务,它将可以正常工作

$ service sshd restart

然后检查

$ ssh localhost

会工作的


5

我使用Mac,这对我有用:

打开系统偏好设置,然后搜索“共享”。

选择“远程登录”,确保已打开,并记得添加所需的用户。在此处输入图片说明

从这里得到


4

对于我的情况(ubuntu 14.04,全新安装),我只运行以下命令即可运行!

sudo apt-get install ssh


4

出于什么价值,我尝试从vm SSH到运行Ubuntu 16.04 Xenial的本地计算机时遇到以下错误。

 ssh: connect to host 192.168.144.18 port 22: Connection refused

它立即得到解决:

sudo apt-get install ssh

请注意,修复之前:“哪个sshd”什么都不返回,而“哪个ssh”返回

/usr/bin/ssh

修复之后:“哪个sshd”返回

/usr/sbin/sshd

4

我用了:

sudo service ssh start

然后:

ssh localhost

3

这可能是由于以下原因引起的:

  1. 未安装SSH服务器(仅SSH客户端),请尝试: apt-get install ssh openssh-client openssh-server
  2. iptables(防火墙)阻止了连接,请尝试: ufw allow ssh

默认情况下,即使在启用openssh的情况下进行安装,ssh也会在防火墙上被阻止
DoctorPangloss

3

在Mac上,转到系统设置->网络->共享,然后允许远程登录。

尝试ssh localhost

你应该很好。


3

对我有用的是:

sudo mkdir /var/run/sshd
sudo apt-get install --reinstall openssh-server

我尝试了上面提到的所有解决方案,但是不知何故此目录/ var / run / sshd仍然不存在。我有Ubuntu 16.04.4 LTS。如果有人遇到同样的问题,希望我的回答对您有所帮助。


1

我的端口号不同。我尝试使用

ssh localhost -p 8088

这对我有用


1

如果仍然遇到问题,请尝试以下操作:

sudo ufw enable    
sudo apt-get install openssh-server

这也可能起作用。


1

其实我解决了这个问题,我刚刚安装了shh守护程序。

在终端:

sudo apt-get install openssh-server


1

一种方法是去航站楼

$ sudo gedit /etc/hosts

***enter your ip address ipaddress of your pc  localhost 
    ipaddress of your pc  localhost(Edit your pc name with localhost) **

然后使用以下命令重新启动ssh服务:

$ service ssh restart

问题将得到解决。谢谢


1

如果您使用的是centOS或Red Hat,则应首先更新SElinux。执行以下语句

ausearch -c 'sshd' --raw | audit2allow -M my-sshd

那你需要执行

semodule -i my-sshd.pp

祝好运


1

如果确定已安装ssh,则可能ssh和/或sshd已终止ssh或尚未启动服务器服务。要检查这些进程是否正在运行,请使用:

//this tells you whether your ssh instance is active/inactive
sudo service ssh status

要么

//this list all running processes whose names contain the string "ssh"
sudo ps -A | grep ssh

可能ssh会处于活动状态并正在运行,但sshd不会。要启用它们:

sudo service ssh start

NB; -有些系统具有重启选项,但我的系统没有


1

尝试 sudo vi /etc/ssh/sshd_config

在头几个谎言中,您会发现

软件包生成的配置文件

有关详细信息,请参见sshd_config(5)手册页。

我们侦听哪些端口,IP和协议

xxxxxx端口

将端口xxxxx更改为“端口22”,并通过保存更改退出vi。

重启SSH sudo service ssh restart


1
  1. 在安装/重新安装任何组件之前,请检查sshd的状态。。。
sudo systemctl status sshd
  1. 您应该会看到类似的内容。。。
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor prese>
   Active: inactive (dead)
     Docs: man:sshd(8)
           man:sshd_config(5)
  1. 只需启用并启动sshd
sudo systemctl enable sshd
sudo systemctl start sshd

0

您可以编辑自己的/etc/hosts。例如,如果myhostnameub0,但hostnamein/etc/hostslocalhost,则可能会发生

connect to host ub0 port 22: Connection refused

因为hostname/etc/hostslocalhost没有ub0

因此,hostname在构建分布式集群时应格外小心。


0

对于Linux:

  1. 使用以下命令删除SSH:

    sudo apt-get remove openssh-client openssh-server
    
  2. 使用以下命令再次安装SSH:

    sudo apt-get install openssh-client openssh-server
    

0

您需要检查sshd_config ListenAddress 0.0.0.0中的配置以更新此配置,然后重新启动将解决该问题的sshd服务。



0

检查文件/ etc / ssh / sshd_config中的端口号。确保它是22。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.