เชื่อมต่อกับโฮสต์ localhost พอร์ต 22: การเชื่อมต่อถูกปฏิเสธ


90

ขณะติดตั้ง 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

ใครช่วยฉันแก้ไขข้อผิดพลาดนี้ได้บ้างนอกจากเปลี่ยนหมายเลขพอร์ต

คำตอบ:


118

หากติดตั้ง Hadoop บน Mac OSX ให้แน่ใจว่าเปิดเข้าสู่ระบบระยะไกลภายใต้การตั้งค่าระบบแล้วแชร์ไฟล์ สิ่งนี้ใช้ได้กับเครื่องของฉัน

เข้าสู่ระบบระยะไกล


2
FYI สิ่งนี้ได้ผลสำหรับฉันในการแก้ไขข้อผิดพลาดนี้ใน genral (สำหรับผู้ใช้ในอนาคต) ดูเหมือนจะไม่มีอะไรเกี่ยวข้องกับ Hadoop โดยเฉพาะ ขอบคุณ!
joedragons

89
  1. ลบ SSH ด้วยคำสั่งต่อไปนี้:

    sudo apt-get remove openssh-client openssh-server
    
  2. ติดตั้ง SSH อีกครั้งด้วย:

    sudo apt-get install openssh-client openssh-server
    

มันจะแก้ปัญหาของคุณ.


3
แม้ว่าคำตอบจะฟังดูแปลก แต่ก็ใช้งานได้อย่างสมบูรณ์แบบแม้ในพอร์ต 22
user1613360

2
ฉันคิดว่าเหตุผลคือมันไม่ได้รับการติดตั้งอย่างถูกต้องมาก่อน
Divyang Shah

1
ทำงานอย่างมีเสน่ห์ :)
Ashis Parajuli

1
@patrick จำเป็นต้องมีกระบวนการลบในกรณีที่มีการเพิ่มบางส่วนหรือไม่อยู่ในขั้นตอนที่สอดคล้องกัน
Divyang Shah

1
มันไร้สาระ - หลังจาก 4 ชั่วโมงจำเป็นต้องติดตั้งใหม่ ฉันจะเขียนบทความ
Leafyshark

33

คุณได้sshdติดตั้งหรือไม่? คุณสามารถตรวจสอบได้ด้วย:

which ssh
which sshd

สำหรับข้อมูลโดยละเอียดคุณสามารถไปที่ลิงค์นี้


1
ฉันลองใช้คำสั่ง sudo apt-get install openssh-server มันเริ่มถามรหัสผ่านสำหรับ hduser โดยที่ฉันไม่ได้สร้างรหัสผ่านใด ๆ ให้กับผู้ใช้ฉันจะรู้รหัสผ่านเริ่มต้นได้อย่างไร
Surya

ฉันเหนื่อยซึ่ง ssh ซึ่ง sshd สิ่งนี้ทำให้ฉันมีเส้นทางภายใน '/ usr / bin / ssh' พวกเขาได้รับการติดตั้งในเครื่องของฉันแล้ว
Surya

3
ssh คือไคลเอนต์และ sshd คือเซิร์ฟเวอร์ การติดตั้งการใช้งานsshd sudo apt-get install openssh-serverเมื่อคุณสร้างบัญชีผู้ใช้สำหรับ hduserคุณต้องสร้างรหัสผ่าน อย่าสับสนว่าด้วยข้อความรหัสผ่านว่างเปล่าที่คุณอาจตั้งไว้สำหรับ ssh ที่ไม่มีรหัสผ่านจากhduserบัญชีไปยังตัวมันเองบน localhost
อรุณ

23

ลองติดตั้งแพ็กเกจ SSH ทั้งหมด:

sudo apt-get install ssh

ฉันมีsshคำสั่งใน Ubuntu แต่ได้รับข้อผิดพลาดตามที่คุณมี หลังจากการติดตั้งแบบเต็มทั้งหมดได้รับการแก้ไข


1
สิ่งนี้แก้ไขได้สำหรับฉันเป็นสถานการณ์ของฉัน (ฉันได้ติดตั้งและใช้งาน sshd แล้วนอกกรอบ) บน Ubuntu 19.04
Jonathan Hartley

12

ตรวจสอบว่าพอร์ตนี้เปิดอยู่หรือไม่ บางทีปีศาจ SSH ของคุณไม่ทำงาน ดูว่า sshd กำลังทำงานอยู่หรือไม่ ถ้าไม่เช่นนั้นก็เริ่มได้เลย


ฉันลองให้คำสั่ง sudo apt-get install openssh-server มันเริ่มถามรหัสผ่านสำหรับ hduser โดยที่ฉันไม่ได้สร้างรหัสผ่านใด ๆ ให้กับผู้ใช้ฉันจะรู้รหัสผ่านเริ่มต้นสำหรับ hduser ได้อย่างไร
Surya

1
ไม่มีการถามรหัสผ่านสำหรับผู้ใช้ root / sudo ของระบบ linux ที่คุณกำลังติดตั้ง
abhinav

[root @ localhost .ssh] # ซึ่ง ssh / usr / bin / ssh [root @ localhost .ssh] # ซึ่ง sshd / usr / sbin / sshd ติดตั้งอยู่ในเครื่องของฉันแล้ว
Surya

1
จากนั้นเรียกใช้ sshd demon /bin/etc/init.d sshd start
abhinav

sshd re-exec ต้องการการดำเนินการกับเส้นทางที่แน่นอนนี่คือข้อความจากเส้นทาง
Surya

10

ฉันทำตามคำแนะนำทั้งหมดข้างต้นแล้ว แต่ก็ไม่ได้ผล จากนั้นฉันเริ่มบริการ ssh ใหม่และใช้งานได้ นี่คือสิ่งที่ฉันทำ:

service ssh restart

จากนั้นฉันทำซ้ำ

ssh localhost

ตอนนี้ฉันสามารถเชื่อมต่อกับ 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

ไม่มีอะไรจะสามารถสื่อสารกับโฮสต์ ... บนพอร์ตใดก็ได้


ตอบโจทย์เป๊ะ!
Kanuj Bhatnagar


6

หากคุณเริ่มบริการใหม่ก็จะใช้งานได้

$ service sshd restart

จากนั้นตรวจสอบ

$ ssh localhost

มันจะทำงาน


6

ฉันใช้ Mac สิ่งนี้ใช้ได้กับฉัน:

เปิด System Preferences จากนั้นค้นหา 'sharing'

เลือกการเข้าสู่ระบบระยะไกลตรวจสอบให้แน่ใจว่าเปิดอยู่และอย่าลืมเพิ่มผู้ใช้ที่จำเป็นป้อนคำอธิบายภาพที่นี่

ได้รับจากที่นี่


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' ไม่ส่งคืนอะไรและ 'ssh ใดที่ส่งคืน

/usr/bin/ssh

และหลังจากการแก้ไข: 'ซึ่ง sshd' ส่งกลับ

/usr/sbin/sshd

3

อาจเกิดจากสาเหตุต่อไปนี้:

  1. ไม่ได้ติดตั้งเซิร์ฟเวอร์ SSH (เฉพาะไคลเอนต์ SSH) ให้ลอง: apt-get install ssh openssh-client openssh-server
  2. การเชื่อมต่อถูกบล็อกโดย iptables (Firewall) ให้ลอง: ufw allow ssh

โดยค่าเริ่มต้น ssh จะถูกบล็อกบนไฟร์วอลล์แม้ว่าจะติดตั้งโดยเปิดใช้งาน openssh
ก็ตาม

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 หวังว่าคำตอบของฉันจะช่วยได้หากมีคนมีปัญหาเดียวกัน


2
  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

ในอูบุนตู: สิ่งนี้จะใช้ได้: systemctl เปิดใช้งาน ssh.service
Krishna Kumar Singh

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

ในไม่กี่คำแรกคุณจะพบ

ไฟล์คอนฟิกูเรชันที่สร้างแพ็กเกจ

ดู manpage sshd_config (5) สำหรับรายละเอียด

พอร์ต IP และโปรโตคอลใดที่เรารับฟัง

พอร์ต xxxxx

เปลี่ยนพอร์ต xxxxx เป็น "พอร์ต 22" และออกจาก vi โดยบันทึกการเปลี่ยนแปลง

รีสตาร์ท ssh sudo service ssh restart


0

คุณควรแก้ไขไฟล์/etc/hosts. ตัวอย่างเช่นถ้า my hostnameis ub0แต่hostnamein /etc/hostsis 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

หากคุณสามารถ ping และไม่สามารถ ssh ได้แสดงว่าเป็นไฟร์วอลล์ ไฟร์วอลล์บน 18.4 (ไม่แน่ใจเกี่ยวกับเวอร์ชันอื่น) โดยค่าเริ่มต้นและอนุญาตเฉพาะพอร์ต 8080

วิธีแก้ไขมีดังนี้

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


0

ตรวจสอบไฟล์ / etc / ssh / sshd_config สำหรับหมายเลขพอร์ต ตรวจสอบให้แน่ใจว่าเป็น 22

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.