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

може хтось допоможе мені вирішити цю помилку, ніж зміна номера порту

Відповіді:


116

Якщо ви встановлюєте Hadoop на Mac OSX, обов’язково увімкніть віддалений вхід у розділі Системні налаштування, а потім Спільний доступ до файлів . Це працювало на моїй машині.

Віддалений вхід


2
FYI, це спрацювало для мене, щоб вирішити цю помилку загально (для майбутніх користувачів), мабуть, не має нічого спільного з 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 Shah

1
Працюй як шарм :)
Ashis Parajuli

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-отримати установку команди OpenSSH-сервера, він почав задавати пароль для hduser, де я не створити будь-який пароль для користувача, як я можу знати пароль за замовчуванням для hduser
Surya

1
Ні, він запитує пароль для користувача root / sudo користувача системи Linux, де ви встановлюєте.
abhinav

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

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

sshd re-exec вимагає виконання з абсолютним шляхом, це повідомлення із шляху
Суря

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

Зверніть увагу, перед виправленням: "який sshd" нічого не повернув, а "який sshd" повернув

/usr/bin/ssh

А після виправлення: повернувся 'which sshd'

/usr/sbin/sshd


3

Можливо, причиною цього є:

  1. Сервер SSH не встановлений (лише клієнт SSH), спробуйте: apt-get install ssh openssh-client openssh-server
  2. З’єднання заблоковано iptables (брандмауер), спробуйте: 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. Наприклад, якщо my hostnameє ub0, але hostnamein /etc/hostsє localhost, це може статися

connect to host ub0 port 22: Connection refused

Тому що hostnameв не /etc/hostsєlocalhostub0 .

Отже, ви повинні бути обережними 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.