подключиться к хосту 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

может кто-нибудь помочь мне решить эту ошибку, чем изменить номер порта

Ответы:


117

Если вы устанавливаете Hadoop на Mac OSX, убедитесь, что включили удаленный вход в разделе « Системные настройки», а затем « Общий доступ к файлам» . Это сработало на моей машине.

Удаленный вход


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
Я думаю, причина в том, что он неправильно установлен раньше
Дивьянг Шах

1
Работайте как шарм :)
Ашис Параджули

1
@patrick процесс удаления необходим, если он добавлен частично или не на согласованной стадии.
Divyang Shah

32

Вы sshdустановили? Вы можете проверить это с помощью:

which ssh
which sshd

Для получения подробной информации вы можете перейти по этой ссылке .


1
Я попытался дать команду sudo apt-get install openssh-server, она начала запрашивать пароль для hduser, где я не создавал никакого пароля для пользователя, как я могу узнать пароль по умолчанию
Сурья

Я устал, какой ssh, какой sshd, это дает мне внутренний путь '/ usr / bin / ssh', они уже установлены на моей машине
Сурья

3
ssh - это клиент, а sshd - это сервер. Для установки sshdиспользуйте sudo apt-get install openssh-server. Когда вы создавали учетную запись пользователя для hduser, вы должны были создать пароль. Не путайте с пустой кодовой фразой, которую вы могли установить для SSH без пароля от hduserучетной записи к самой себе на localhost.
arun

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
Сурья

1
Нет, он запрашивает пароль для пользователя root / sudo системы Linux, в которую вы устанавливаете.
абхинав

[root @ localhost .ssh] # which ssh / usr / bin / ssh [root @ localhost .ssh] # который sshd / usr / sbin / sshd, ssh уже установлен на моей машине
Surya

1
затем запустите демон sshd /bin/etc/init.d sshd start
abhinav

sshd re-exec требует выполнения с абсолютным путем, это сообщение от пути
Surya

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

НИЧТО не сможет связаться с хостом ... на любом порту.


Отличный ответ!
Канудж Бхатнагар

5

Если вы перезапустите службу, она будет работать

$ service sshd restart

тогда проверьте

$ ssh localhost

Это будет работать


5

Я использую Mac, у меня это сработало:

Откройте Системные настройки, затем выполните поиск по запросу «совместное использование».

Выберите «Удаленный вход», убедитесь, что он включен, и не забудьте добавить необходимых пользователей.введите описание изображения здесь

Получил отсюда


4

В моем случае (ubuntu 14.04, свежая установка) я просто запускаю следующую команду, и она работает!

sudo apt-get install ssh


4

Как бы то ни было, я получил следующую ошибку, пытаясь использовать ssh на моем локальном компьютере с Ubuntu 16.04 Xenial из vm.

 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


3

Это может быть вызвано некоторыми из следующих причин:

  1. SSH-сервер не установлен (только SSH-клиент), попробуйте: apt-get install ssh openssh-client openssh-server
  2. Соединение заблокировано iptables (Firewall), попробуйте: ufw allow ssh

по умолчанию ssh заблокирован на брандмауэре, даже при установке с включенным openssh
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

Способ сделать - перейти к терминалу

$ 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было прекращено, или служба сервера не была запущена. Чтобы проверить, запущены ли эти процессы, используйте:

//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-адреса и протоколы мы слушаем

Порт xxxxx

измените Порт 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. Например , если мой hostnameесть ub0, но hostnameв /etc/hostsэто localhost, это может произойти

connect to host ub0 port 22: Connection refused

Потому что hostnameв /etc/hostsэто localhostне 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, которая решит проблему.



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.