ฉันได้รับ
port 22: Connection refused
ข้อผิดพลาดขณะเชื่อมต่อกับเซิร์ฟเวอร์
ฉันมีทั้งลูกค้า openssh และเซิร์ฟเวอร์ที่ติดตั้งและพวกเขากำลังทำงานอยู่ แต่ก็ยังมีข้อผิดพลาดอยู่ กรุณาช่วย.
ฉันได้รับ
port 22: Connection refused
ข้อผิดพลาดขณะเชื่อมต่อกับเซิร์ฟเวอร์
ฉันมีทั้งลูกค้า openssh และเซิร์ฟเวอร์ที่ติดตั้งและพวกเขากำลังทำงานอยู่ แต่ก็ยังมีข้อผิดพลาดอยู่ กรุณาช่วย.
คำตอบ:
ฉันผ่านปัญหานี้และได้รับคำตอบที่เหมาะสมในที่สุด
sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22
จากนั้นเข้าไปraspi-config
ในหน้าต่างเทอร์มินัลและเปิดใช้งาน ssh
สิ่งนี้จะอนุญาตให้ใช้พอร์ต 22 สำหรับ sshd
connection refused
ข้อผิดพลาดคือความลับดังนั้นฉันมีความคิดว่ามันเป็นปัญหาไฟร์วอลล์ปัญหาชื่อผู้ใช้ปัญหาที่อยู่ IP ฯลฯ เป็นต้นที่น่าผิดหวังมาก
sudo ufw allow 22
ทำงานครั้งเดียว อีกครั้งข้อผิดพลาดเริ่มปรากฏขึ้น
ขณะอยู่บนเซิร์ฟเวอร์ให้ตรวจสอบว่า sshd กำลังทำงานอยู่และกำลังฟังพอร์ต 22:
$ sudo netstat -anp | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1538/sshd
tcp6 0 0 :::22 :::* LISTEN 1538/sshd
หากคุณไม่ได้รับผลลัพธ์หรือไม่แสดงว่าคุณกำลังฟังบน tcp 0.0.0.0:22 ... แก้ไขได้
หากคุณแสดงให้เห็นว่า sshd กำลังทำงานและกำลังฟังพอร์ต tcp 22 ให้ตรวจสอบเพื่อให้แน่ใจว่าไม่มีกฎไฟร์วอลล์เข้ามา อีกครั้งบนเซิร์ฟเวอร์:
$ sudo iptables -L | grep ssh
DROP tcp -- anywhere anywhere tcp dpt:ssh
หรือสลับกัน
$ sudo ufw verbose
Status: active
To Action From
-- ------ ----
22 DENY Anywhere
22/tcp DENY Anywhere
หากคุณเห็นกฎเช่นเดียวกับกฎข้างต้นคุณจะต้องแก้ไข
หากคุณไม่เห็นกฎไฟร์วอลล์ใด ๆ และคุณเห็นบริการที่ใช้งานอยู่บนเซิร์ฟเวอร์แสดงว่าถึงเวลาที่ต้องตรวจสอบเวิร์กสเตชันของคุณและเครือข่ายที่เชื่อมต่ออยู่ คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์อื่นได้หรือไม่? คุณสามารถ ping อินเตอร์เฟสหรือที่อยู่ลูปแบ็คของคุณเองได้หรือไม่? เป็นต้น
sudo ufw allow 22
(หรืออะไรก็ตามที่พอร์ตของคุณ)
ลองสิ่งนี้
sudo apt-get remove openssh-client openssh-server
แล้ว
sudo apt-get install openssh-client openssh-server
มันได้ผลกับฉัน :)
อาจไม่ใช่วิธีแก้ปัญหาดั้งเดิมที่สุด... :)
มาพร้อมกับปัญหาเดียวกันหลังจากติดตั้ง Raspbian โซลูชันที่เหมาะกับฉัน:
sudo apt-get purge openssh-server
sudo apt-get install openssh-server
คำสั่งต่อไปนี้ใช้งานได้สำหรับฉัน:
cd /root/.ssh
vi known_hosts
ตอนนี้ลบทุกอย่างในไฟล์นั้นและป้อนใน terminal:
service sshd restart
ที่มา: SSH - การเชื่อมต่อถูกปฏิเสธ
ssh-keygen -f "/home/MYUSER/.ssh/known_hosts" -R MYHOST
แทนที่ในผู้ใช้ linux และโฮสต์ระยะไกลของฉันฉันพยายามที่จะเชื่อมต่อกับ
สิ่งนี้อาจแก้ไขให้คุณเช่นกัน ลองพอร์ตการส่งต่อการเชื่อมต่อ 22 จากที่อยู่ IP ขาออกของคุณไปยัง IP ท้องถิ่นของคุณบนพอร์ตเดียวกัน ทำงานสำหรับฉันทำให้ฉันสามารถ ssh ไปยังคอมพิวเตอร์ ubuntu ระยะไกล
IP แบบคงที่ผิดในกรณีของฉัน พบได้จากการทำping <my_ip>
หลังจากเปลี่ยนเซิร์ฟเวอร์ มันยังคงกระตุกแม้ว่าเซิร์ฟเวอร์จะปิดอยู่ การเปลี่ยน IP ช่วยแก้ปัญหา