【问题标题】:connect to host localhost port 22: Connection refused连接到主机 localhost 端口 22:连接被拒绝
【发布时间】:2013-06-24 12:23:41
【问题描述】:

在我的本地机器上安装 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

谁能帮我解决这个错误,而不是更改端口号

【问题讨论】:

    标签: linux hadoop ssh


    【解决方案1】:

    如果在 Mac OSX 上安装 Hadoop,请确保在 System Preferences 下打开 Remote Login,然后打开 File Sharing。这在我的机器上工作。

    【讨论】:

    • 仅供参考,这对我来说解决了这个错误(对于未来的用户)似乎与 Hadoop 无关。谢谢!
    【解决方案2】:
    1. 使用以下命令删除 SSH:

      sudo apt-get remove openssh-client openssh-server
      
    2. 再次安装 SSH:

      sudo apt-get install openssh-client openssh-server
      

    它会解决你的问题。

    【讨论】:

    • 尽管答案听起来很奇怪,但即使在端口 22 上也能完美运行。
    • 我认为原因是之前没有正确安装
    • 像魅力一样工作:)
    • @patrick 需要删除过程,以防它被部分添加或未处于一致阶段。
    • 只是想说在 WSL 上这会弄乱你的 ssh,你不能再安装它了
    【解决方案3】:

    您是否安装了sshd?您可以通过以下方式验证:

    which ssh
    which sshd
    

    详细信息可以访问this link。

    【讨论】:

    • 我尝试给 sudo apt-get install openssh-server 命令,它开始询问 hduser 的密码,我没有为用户创建任何密码,我怎么知道默认密码
    • 我厌倦了 which ssh , which sshd ,这给了我内部路径 '/usr/bin/ssh' ,它们已经安装在我的机器上
    • ssh 是客户端,sshd 是服务器。要安装sshd,请使用sudo apt-get install openssh-server。当您为hduser 创建用户帐户时,您必须已创建密码。不要将其与您可能为无密码 ssh 从 hduser 帐户设置到本地主机上的自身设置的空密码混淆。
    【解决方案4】:

    尝试安装整个 SSH 软件包:

    sudo apt-get install ssh
    

    我在我的 Ubuntu 上有 ssh 命令,但遇到了错误。完全安装后一切都解决了。

    【讨论】:

    • 这为我解决了,正是我的情况(我也已经安装并运行了 sshd,开箱即用)。在 Ubuntu 19.04 上。
    • 在 Ubuntu 20.04 中工作。同样的情况。
    【解决方案5】:

    我使用的是 Mac,这对我有用:

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

    选择远程登录,确保已打开并记得添加所需的用户。

    Got it from here

    【讨论】:

    • 我在启动 hadoop 时遇到了问题,我使用此解决方案进行了修复。
    【解决方案6】:

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

    service ssh restart
    

    那我重做

    ssh localhost
    

    现在我可以连接到我的本地主机了。希望对你有帮助

    【讨论】:

      【解决方案7】:

      检查此端口是否打开。也许你的 SSH 恶魔没有运行。查看 sshd 是否正在运行。如果没有,那就开始吧。

      【讨论】:

      • 我尝试给 sudo apt-get install openssh-server 命令,它开始询问 hduser 的密码,我没有为用户创建任何密码,我如何知道 hduser 的默认密码跨度>
      • 不,它是在询问您正在安装的 linux 系统的 root/sudo 用户的密码。
      • [root@localhost .ssh]# which ssh /usr/bin/ssh [root@localhost .ssh]# which sshd /usr/sbin/sshd , ssh 已经安装在我的机器上跨度>
      • 然后运行 ​​sshd 恶魔 /bin/etc/init.d sshd start
      • sshd re-exec 需要使用绝对路径执行,这是来自路径的消息
      【解决方案8】:

      我用过:

      sudo service ssh start
      

      然后:

      ssh localhost
      

      【讨论】:

        【解决方案9】:

        如果你重新启动服务,它就会工作

        $ service sshd restart
        

        然后检查

        $ ssh localhost
        

        会有用的

        【讨论】:

          【解决方案10】:

          确保 /etc/hosts.allow 包含:

          ssh:ALL:allow
          sshd:ALL:allow
          

          或

          ssh:localhost:allow
          sshd:localhost:allow
          

          OR - 其他一些变体

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

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

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

          【讨论】:

          • 完美答案!
          【解决方案11】:

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

          sudo apt-get install ssh

          【讨论】:

            【解决方案12】:

            为了它的价值,我在尝试从 vm 连接到运行 Ubuntu 16.04 Xenial 的本地计算机时遇到以下错误。

             ssh: connect to host 192.168.144.18 port 22: Connection refused
            

            它立即得到修复:

            sudo apt-get install ssh
            

            注意,修复前:“which sshd”没有返回任何内容,而“which ssh”返回了

            /usr/bin/ssh
            

            修复后:“which sshd”返回

            /usr/sbin/sshd
            

            【讨论】:

              【解决方案13】:

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

              1. SSH Server 未安装(仅 SSH Client),尝试:apt-get install ssh openssh-client openssh-server
              2. 连接被iptables(防火墙)阻止,尝试:ufw allow ssh

              【讨论】:

              • 默认情况下,防火墙会阻止 ssh,即使在启用 openssh 的情况下安装也是如此
              【解决方案14】:

              在mac上进入系统设置->网络->共享并允许远程登录。

              尝试 ssh 本地主机

              你应该很好。

              【讨论】:

                【解决方案15】:

                对我有用的是:

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

                我尝试了上述所有解决方案,但不知何故,这个目录 /var/run/sshd 对我来说仍然缺失。我有 Ubuntu 16.04.4 LTS。如果有人遇到同样的问题,希望我的回答有所帮助。

                【讨论】:

                  【解决方案16】:
                  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
                  

                  【讨论】:

                  • 在 ubuntu 中:这会起作用:systemctl enable ssh.service
                  【解决方案17】:

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

                  ssh localhost -p 8088
                  

                  这对我有用

                  【讨论】:

                    【解决方案18】:

                    如果您仍然遇到问题,请尝试以下方法:

                    sudo ufw enable    
                    sudo apt-get install openssh-server
                    

                    这也可能有效。

                    【讨论】:

                      【解决方案19】:

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

                      在终端:

                      sudo apt-get install openssh-server

                      【讨论】:

                        【解决方案20】:

                        一种方法是去终端

                        $ 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
                        

                        问题将得到解决。 谢谢

                        【讨论】:

                          【解决方案21】:

                          如果你使用 centOS 或 Red Hat,你应该先更新 SElinux。 执行以下语句

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

                          那么你需要执行

                          semodule -i my-sshd.pp
                          

                          祝你好运

                          【讨论】:

                            【解决方案22】:

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

                            //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
                            

                            注意; - 有些系统有重启选项,但我的没有

                            【讨论】:

                              【解决方案23】:

                              试试sudo vi /etc/ssh/sshd_config

                              在最初的几个谎言中你会发现

                              打包生成的配置文件

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

                              我们监听哪些端口、IP 和协议

                              端口 xxxxx

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

                              重启ssh sudo service ssh restart

                              【讨论】:

                                【解决方案24】:

                                您可以编辑您的/etc/hosts。比如我的hostname是ub0,但是/etc/hosts中的hostname是localhost,就有可能发生

                                connect to host ub0 port 22: Connection refused
                                

                                因为/etc/hosts 中的hostname 是localhost 而不是ub0。

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

                                【讨论】:

                                  【解决方案25】:

                                  对于 Linux:

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

                                    sudo apt-get remove openssh-client openssh-server
                                    
                                  2. 再次安装 SSH:

                                    sudo apt-get install openssh-client openssh-server
                                    

                                  【讨论】:

                                    【解决方案26】:

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

                                    【讨论】:

                                      【解决方案27】:

                                      如果你能 ping 通但不能 ssh,那么它就是防火墙。 18.4上的防火墙(其他版本不清楚)默认开启,只允许8080端口。

                                      这里是如何解决的

                                      https://linuxconfig.org/how-to-enable-disable-firewall-on-ubuntu-18-04-bionic-beaver-linux

                                      【讨论】:

                                        【解决方案28】:

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

                                        【讨论】:

                                          【解决方案29】:

                                          如果你的 apache 服务器没有运行,你的本地主机不会运行,检查一下 有一些文章如果你不明白我会在这里留下一个链接;)

                                          check this

                                          我有同样的错误,完成了 rn

                                          【讨论】:

                                          • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
                                          猜你喜欢
                                          • 1970-01-01
                                          • 2015-02-01
                                          • 2018-09-21
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 2017-12-01
                                          • 2020-02-13
                                          • 2014-05-21
                                          相关资源
                                          最近更新 更多