Saya memiliki dua komputer di belakang router yang sama. Sebut mereka A dan B.
A kaleng SSH ke B dengan cara berikut: ssh usr@<internal ip of computer>
B dapat SSH ke A dengan melakukan hal yang sama, tetapi IP eksternal harus digunakan. Saya telah meneruskan port 22 dari router saya ke IP komputer A, sehingga semuanya masuk akal bagi saya.
Namun, saya juga ingin meneruskan port 26 ke komputer B, dan SSH dari luar jaringan dengan menggunakan IP eksternal untuk keduanya, tetapi menentukan port 22 atau 26, untuk secara efektif memilih komputer mana yang akan digunakan.
Saya telah mencoba mengizinkan port 26 melalui OUTPUT iptables
pada A dan INPUT dari B, tapi itu sepertinya tidak berhasil. Saya juga telah meneruskan port 26 ke IP internal B (melalui router), seperti yang saya lakukan dengan 22 untuk A.
Inilah yang saya dapatkan ketika saya mencoba SSH dari A ke B menggunakan IP eksternal dan port 26:
ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.
Versi:
- A = OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
- B = OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1c 10 Mei 2012
A memiliki 12,04 Ubuntu, B adalah Raspberry Pi dengan Raspbian.
EDIT: Sesuatu yang saya lupa masukkan: Saya memang mencoba mengganti file konfigurasi SSH (saya menemukan itu /etc/ssh/ssh_config
) Saya membatalkan komentar (menghapus #
) baris dengan Port
dan berubah 22
menjadi 26
. Itu memberi saya koneksi masih menolak pesan. (Saya reboot tanpa hasil.)
sumber
Jawaban:
Sepertinya Anda tidak menjalankan SSH pada port 26 di mesin kedua. Anda dapat mengubah nomor port pada mesin itu menjadi 26.
Edit
/etc/ssh/sshd_config
& jangan lupa untuk me-restart SSH atau membiarkannya pada 22, tetapi teruskan port 26 pada router ke port 22 pada mesin kedua. Juga, jangan lupa untuk mengubah pengaturan firewall pada mesin kedua untuk memungkinkan koneksi melalui.sumber
Jika Anda menggunakan sistem Linux dan Anda ingin terhubung ke server SSH pada port 26 Anda dapat menggunakan perintah berikut.
catatan:
sumber
Saya menggunakan port 22 hanya untuk akses ssh intranet.
Untuk akses melalui internet saya menggunakan port khusus (tidak biasa). Ini memiliki manfaat, saya mengurangi beban yang dihasilkan oleh skrip anak-anak yang memindai port 22 untuk "nama pengguna yang terkenal".
Proses sshd eksternal dikendalikan oleh
xinetd
dan berjalan secara paralel dengan proses internalsshd
. Dalam contoh berikut ini saya menggunakan port 12345:Anda bebas mengubah ini ke nomor port gratis yang tersedia di sistem Anda. Mungkin nilai yang lebih tinggi akan membuatnya juga sedikit lebih tidak mungkin bahwa port ini dipindai oleh "pemindaian porta cepat" .
The
xinetd
konfigurasi:File
/etc/ssh/external-ssdh.config
dapat berupa salinan darisshd
konfigurasi Anda yang biasa . Pastikan bahwa pernyataan berikut dikonfigurasi:Saya juga menyarankan untuk menerapkan otentikasi kunci publik dan menonaktifkan otentikasi kata sandi untuk akses internet:
sumber
Dengarkan port juga bisa sulit ditautkan ke alamat IP
/ etc / ssh / sshd_config:
sumber
Seperti yang telah saya jelaskan dalam jawaban terkait , ssh client memungkinkan menentukan format URI sebagai
ssh://user@host:1234
. Sebagai contoh:di mana 2222 adalah nomor port. Ganti nomor port yang ingin Anda gunakan. Tentu saja, ingat bahwa untuk terhubung ke server ssh port yang ditentukan (pada host yang Anda coba sambungkan) harus mendengarkan pada port yang ditentukan di tempat pertama.
sumber
Bukan ide yang baik untuk menjalankan ssh pada port default (TCP / 22), tidak meneruskan dari WAN IP 22 ke port apa pun yang menggunakan ssh-server pada LAN IP.
Dalam pengertian yang lebih umum untuk terhubung ke layanan ssh-server harus mendengarkan pada port itu. Kamu harus
/etc/ssh/sshd_config
( catat d ) dari#Port 22
hinggaPort 26
. Yaitu, batalkan komentar dan ubah port. Mungkin lebih baik daripada 26 akan menjadi sesuatu yang acak di atas , seperti 42.895.Mulai kembali layanan ssh-server
Kemudian dari ssh-client Anda akan dapat terhubung
Bonus:
mosh
Jika paket mosh diinstal pada server Anda kemudian gunakan
sumber