Bagaimana mengatasi kesalahan 'Sambungan ditolak' dalam koneksi SSH?

96

Saya memiliki Ubuntu Server 10.10 32-bit di rumah saya. Saya membuat koneksi SSH dari PC saya melalui Putty.

Masalahnya adalah, kadang-kadang saya bisa masuk dengan mulus. Namun, terkadang itu memberi saya kesalahan seperti ini:Network error: Connection refused.

Kemudian, saya tidak mengubah apa pun, coba masuk beberapa kali lagi, tunggu sebentar dan coba lagi. Terkadang saya bisa masuk, terkadang saya tidak bisa. Sepertinya cukup acak bagi saya.

Apa yang bisa saya lakukan untuk menyelesaikan ini?

Sunting:

Dan Terkadang, Putty memberikan Network error: Software caused connection abortkesalahan setelah menampilkan login as:teks.

Berikut ini adalah hasil ping -t:

Pinging 192.168.2.254 with 32 bytes of data:
Reply from 192.168.2.254: bytes=32 time=6ms TTL=64
Reply from 192.168.2.254: bytes=32 time=65ms TTL=6
Reply from 192.168.2.254: bytes=32 time=88ms TTL=6
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=3ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64

Saya mematikan firewall router, dan semuanya sepertinya berfungsi sekarang. Kecuali untuk itu, saya masih tidak bisa masuk ke server web saya dengan mengetikkan IP eksternal dari PC saya.

keributan
sumber
lain kali craps keluar seperti itu; jalankan ping lagi, apakah masih berfungsi? berapa banyak orang ssh ke mesin ini?
myusuf3
Hanya saya ssh server ini.
frbry
Persis masalah yang sama di sini, juga mendapatkan campuran koneksi yang berhasil (yang kemudian bekerja berjam-jam), 'koneksi ditolak' dan 'perangkat lunak menyebabkan koneksi dibatalkan' setelah login atau kata sandi masuk. Untuk memberikan beberapa detail tambahan: dalam kasus saya ini adalah mesin virtual 64-bit (menjalankan Ubuntu Server 10.10) pada host Microsoft Hyper-V, menggunakan emulasi "kartu jaringan lama".
hheimbuerger
SSH diinstal di server Anda?
Willian Soares

Jawaban:

82

Anda harus menginstal openssh-server di Linux sebelum ini bekerja. Dapatkan alamat IP internal Ubuntu dan gunakan IP itu untuk mengatur port forwarding pada port 22 (SSH) pada router Anda. Meskipun jika Anda tidak bermaksud SSH dari luar jaringan Anda, ini tidak diperlukan.

Berikut cara memasang openssh-server:

sudo apt-get install openssh-server openssh-client
[ENTER PASSWORD]
MacGyver
sumber
10
Tidak menjawab pertanyaan secara langsung tetapi ini berguna karena Ubuntu tidak datang dengan pra-instal dengan server SSH.
Ostati
Saya baru-baru ini mendapatkan laptop baru dan benar-benar lupa itu tidak diinstal secara default = D
Izkata
40

Konflik alamat IP ternyata menjadi akar penyebab ketika saya melihat pesan kesalahan SSH ini.

Setelah membaca jawaban di atas, saya menduga ada konflik alamat IP, tetapi perlu membuktikan bahwa konflik alamat itu atau bukan masalahnya.

Ini artikel bagus menunjukkan cara menggunakan arp-scan untuk melihat apakah dua perangkat keras yang mengklaim alamat IP yang sama.

Dalam kasus saya, mesin server memiliki alamat ip statis 192.168.1.42, saya menggunakan arp-scan untuk memeriksa alamat itu:

$ sudo apt-get install arp-scan
$ arp-scan -I eth0 -l | grep 192.168.1.42
  192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
  192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)

Benar saja ada konflik, seperti yang ditunjukkan di atas. Kemudian saya menjalankan arp-scan tanpa grep, menemukan bahwa .43 tersedia, pergi dan diedit /etc/network/interfacesdan mengubah ip statis dari .42 menjadi .43

Rian Sanderson
sumber
Sebenarnya menjalankan perintah itu hanya menunjukkan satu baris di kotak saya, kecuali bahwa namanya adalah perangkat lain.
assylias
Terima kasih banyak untuk poin ke arah yang benar tentang konflik alamat IP. Punya masalah serupa! +1
DominikAngerer
Baru saja menyelamatkan saya begitu banyak waktu ... pujian ...
Chris Barlow
Terkadang router saya hanya perlu direstart untuk menyelesaikan masalah ini.
Gabriel Staples
14

Gunakan arpingpada alamat IP yang mengalami masalah koneksi. Itu akan menampilkan alamat MAC untuk setiap balasan ping, dan semoga akan membuka kedok alamat MAC yang jahat.

arping 192.168.2.254

Anda harus memeriksa kolam alamat IP DHCP pada server DHCP, pastikan tidak ada perangkat yang memiliki IP statis yang bertabrakan dengan kolam DHCP.

Petunjuk ini menunjukkan duplikat IP:

  • ping ttl dan waktu pulang pergi tampak seperti 2 server yang berbeda
  • terputus-putus terputus tanpa me-reboot
John Shalamskas
sumber
Luar biasa, mengarahkan saya ke jalan yang benar! Mampu melacaknya dengan alamat MAC kedua ke port mana itu, dan mengubah IP printer
Kanada Luke
1
Saya perlu menambahkan -I wlan0 (wlan0 menjadi perangkat wifi saya)
guhur
6

Saya memiliki masalah yang sama, meskipun saya memiliki alamat IP statis. Ternyata server lain di jaringan saya telah diberi alamat IP (statis) yang sama. (Duh.) Jadi sepertinya masalah itu disebabkan oleh konflik alamat IP, tetapi mungkin ada berbagai cara yang mungkin terjadi. Jika Anda menetapkan statis Anda dan masih memiliki masalah, coba matikan mesin Anda dan ping alamatnya. Jika Anda mendapat balasan, mulailah mencari apa lagi yang bisa memiliki alamat yang sama.

DLosc
sumber
1
Saya mengalami gejala yang sama dan melacaknya ke mesin dengan alamat IP yang sama dengan server.
SabreWolfy
4

Apa yang Anda dapatkan jika Anda melakukan ini?

grep 192.168.2.25 /etc/hosts.deny

Jika itu mengembalikan apa pun maka Anda harus menghapusnya.

Jodi MIddleton
sumber
10
Itulah salah satu "penggunaan sia-sia" yang terkenal cat- Anda bisa sajagrep 192.168.2.25 /etc/hosts.deny
Tobias Kienzler
@TobiasKienzler Memperbaikinya
wjandrea
4

buka file ssh config:

sudo nano /etc/ssh/ssh_config

temukan port

#port 22

hapus tajam opsi port

kemudian simpan file dengan ctrl + xdan mulai kembali layanan Anda

sudo service ssh restart
Amin
sumber
3

Ini terlihat lebih dari masalah peralatan jaringan Anda daripada server itu sendiri.

Periksa / var / log / messages untuk tautan ethernet naik / turun (atau wlan jika nirkabel). Jika demikian coba ganti kabelnya.

forcefsck
sumber
Ya, saya mencoba dan berhasil membuat koneksi ssh dari luar jaringan saya (di mana server saya dan PC saya berada). Tampaknya bekerja dengan baik. Server saya juga merupakan server web. Ketika saya mencoba menghubungkan port 80 dari PC saya, saya melihat halaman login modem ADSL saya. Tetapi ketika saya mencoba hal yang sama dari komputer lain yang berada di luar jaringan saya, saya melihat halaman Apache's Works.
frbry
Apa yang Anda ip PC, ip server Anda dan ip router adsl internal Anda?
forcefsck
PC: 192.168.2.2 (Diterima dari DHCP) Server: 192.168.2.254 (Statis, di luar jangkauan DHCP) ADSL Router: 192.168.2.1
frbry
Saya agak bingung, ketika Anda terhubung dari port 192.168.2.2 ke 192.168.2.254 80 Anda mendapatkan login modem adsl?
forcefsck
1
Kecuali jika Anda memasang beberapa jenis proxy web ke server Anda, maka jelas modem adsl Anda merespons permintaan yang dibuat ke 192.168.2.254 dan mungkin itulah masalahnya ketika Anda mendapatkan Connection refusedkesalahan dengan ssh. Jadi, Anda harus memeriksa kembali pengaturan modem adsl Anda.
forcefsck
3

Saya dapat mengkonfirmasi masalah ini: Ini bukan masalah konektivitas sederhana. Tautan ethernet tidak mengubah status; server dapat dijangkau melalui ping; ssh terhubung sesekali dengan sempurna, maka tampaknya secara acak tidak terhubung atau sesi ssh yang ada turun. Ini terjadi pada Ubuntu 10.04 dan 11.04. Mengikuti saran hheimbuerger, saya memberi server IP statis, ini sepertinya memperbaikinya.

Penanganan masalah: Ubah adaptor dari DHCP ke statis.

George
sumber
1

Saya memiliki masalah yang persis sama, dan dalam kasus saya ternyata menjadi konflik alamat IP. Ubuntu VM saya memiliki alamat dinamis, tetapi mesin lain (dalam hal ini telepon) memiliki IP statis yang ditetapkan yang tidak diketahui oleh server DHCP.

Hanya mengubah IP yang ditugaskan oleh server DHCP ke VM Ubuntu memperbaiki semua masalah koneksi.

hheimbuerger
sumber
1

Ini pada dasarnya karena salah satu dari alasan berikut:

  1. Terlalu banyak pengguna di jaringan yang mencoba mengakses server
  2. Lebih dari satu komputer di jaringan memiliki IP yang sama dengan server yang menyebabkan konflik IP
  3. Nama pengguna atau kredensial Anda salah telah dicabut
Mevin Babu
sumber
0

Anda mungkin ingin memeriksa iptablesaturan di server Anda. Sepertinya Anda memiliki aturan untuk membatasi koneksi SSH baru.

Aturan selanjutnya memungkinkan 5 koneksi baru per menit, jika Anda melebihi batas ini, koneksi baru Anda akan ditolak setelah beberapa waktu berlalu:

-A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT

Lihat dokumentasi IPTables / Netfilter , gulirkan sedikit limit.

Lekensteyn
sumber
0

arp-scan menunjukkan dua perangkat duplikat, tetapi ketika saya menjalankan Advanced IP scanner pada Win8 semuanya terlihat baik-baik saja. Jadi mereka tidak selalu setuju.

Saya mengatur router untuk mencabut semua sewa dengan menyuruhnya memberikan sewa hanya 1 jam. Akan memberikan waktu untuk melihat apakah sudah beres.

SDsolar
sumber