Cara menggunakan SSH di luar jaringan rumah

15

Saya baru-baru mengatur SSH pada Raspberry Pi saya. Ini telah berjalan sangat, terutama karena saya dapat mengontrol komputer melalui iPhone saya dengan aplikasi Server Auditor . Sayangnya, ini hanya berfungsi melalui jaringan lokal.

Bagaimana saya bisa membuat SSH saya berfungsi ketika saya keluar dari rumah? (Lebih disukai bekerja dengan aplikasi.)

xxmbabanexx
sumber
dapatkah Anda meneruskan port dari router Anda?
SteveIrwin
1
@SteveIrwin Saya kemungkinan besar bisa, tetapi karena saya tidak melek jaringan, saya lebih suka solusi yang mudah seperti Port Map . Sebenarnya ... jika saya membagikan internet Mac saya dengan Pi saya, apakah saya dapat membagikan Port yang diteruskan?
xxmbabanexx
1
menyiapkan port forward mungkin setidaknya semudah menggunakan Port Map. Anda perlu memberi tahu kami lebih lanjut tentang cara mengatur LAN Anda
John La Rooy
Taruhan terbaik Anda adalah menginstal layanan Weaved (www.weaved.com), dan selesai dengannya. Semua tutorial lain yang akan Anda temukan di internet akan membuat Anda frustrasi.
IgorGanapolsky
untuk posting yang menyarankan penggunaan socketxp gunakan yang berikut ini untuk mengunduh socketxp di portal RPI curl -O.socketxp.com/download/arm/socketxp && chmod + wx socketxp && sudo mv socketxp / usr / local / bin bukan linux mengajukan.
jeonghoon

Jawaban:

20

Berikut adalah langkah-langkah yang saya gunakan (pada debian) yang mungkin berguna bagi Anda.

1.Mengatur IP Statis untuk Pi.

Buka file antarmuka menggunakan perintah

sudo nano /etc/network/interfaces

b. Ubah file antarmuka menjadi yang berikut (Ini berfungsi untuk saya, saya tidak yakin apakah beberapa baris dapat dikecualikan).

auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2  #static ip you want for the pi
netmask 255.255.255.0
gateway 192.168.1.1    # the ip address of the router

c.Periksa apakah Ip diubah menggunakan perintah ifconfig

2. Mengatur DNS dinamis

Kemungkinan besar alamat IP yang diberikan oleh ISP Anda bersifat dinamis sehingga kami membutuhkan cara untuk menyelesaikan perubahan alamat IP. Saya menggunakan perangkat lunak dnsdynamic dan ddclient untuk mencapai hal ini. Keduanya bebas digunakan.

a. Mendaftar untuk akun dengan dnsdynamic

b. Tambahkan domain baru dan pilih nama dan domain dari daftar. Anda dapat memilih salah satu domain yang tersedia dengan subdomain pilihan Anda. Klik cek ketersediaan dan kemudian tambahkan

tangkapan layar dnsdynamic

3.Mengatur ddclient pada Pi

Instal ddclient menggunakan perintah

sudo apt-get install ddclient

b. Buka file konfigurasi untuk ddclient menggunakan perintah berikut dan tambahkan baris berikut.

sudo nano /etc/ddclient.conf

dan ubah file sebagai berikut.

# /etc/ddclient.conf
daemon=600
timeout=10
ssl=yes
protocol=dyndns2
use=web, web=myip.dnsdynamic.com
server=www.dnsdynamic.org
[email protected]  #userid for dnsdynamic.com
password='xxxx'      #password for the same put inside quotes
x.dnsdynamic.com  #the domain name you created

dan simpan file tersebut.

d. Kami ingin layanan ddclient untuk mulai secara otomatis pada reboot. Jadi lakukan yang berikut.

sudo nano /etc/rc.local

Tambahkan perintah berikut sebelum keluar 0 (yang merupakan baris terakhir)

sudo /usr/sbin/ddclient -daemon 600 -syslog

Simpan file tersebut. Untuk memulai ddclient, reboot komputer Anda atau jalankan perintah di atas pada prompt. Ini akan membuat nama domain Anda diperbarui dengan perubahan alamat IP saat ini jika diperlukan.

4.Port Forwarding

Temukan model router Anda.

b. Pergi ke portforward.com

c. Masukkan merek dan model router Anda untuk menemukan panduan terperinci tentang penerusan port.

d.Setelah memilih merek dan model router, Klik pada panduan Default dari halaman yang diarahkan ulang.

e.Pada Kotak Teks Static Ip , Masukkan IP Statis dari Pi yang Anda berikan pada Langkah 1.

f. Ikuti langkah-langkah dan teruskan port 22. Port sumber harus 22 dan port tujuan bisa apa saja. Harap diingat untuk menggunakan Port Tujuan saat menyedot pi. Untuk menghindari kebingungan, saya cenderung menggunakan Sumber dan Tujuan yang sama Pelabuhan.

Jika Anda mengikuti tutorial, Masuk ke pi Anda dari mana saja dengan menggunakan mengganti alamat ip dengan nama domain. misalnya- saya menggunakan [email protected]: 22 untuk ssh ke pi saya.

SteveIrwin
sumber
Terima kasih banyak! Ketika saya kembali dari mengunjungi Exeter, saya akan mencoba ini!
xxmbabanexx
1 besar jawabannya, bagaimanapun, Anda benar-benar perlu menggunakan sudodi /etc/rc.local, bukankah itu sudah berjalan sebagai root?
HeatfanJohn
Jadi benar-benar mengacaukan konfigurasi Ngrok dan Tenun saya. Sekarang saya tidak bisa terhubung sama sekali!
IgorGanapolsky
2

Pertama, Anda ingin mengatur penerusan porta. Setiap router sedikit berbeda, jadi Anda harus mencari spesifik untuk router Anda.
Ada panduan port forwarding bagaimana-untuk yang dapat bekerja untuk sebagian besar router, tapi saya sarankan mencari panduan untuk model router Anda yang sebenarnya.

Atur porta yang mudah diingat untuk ditautkan ke pi raspberry Anda, seperti 23456 atau sesuatu. Hati-hati jangan sampai menimpa nomor port umum .

Akhirnya, menggunakan ssh, lakukan hal berikut:

$ ssh -p 23456 user@IP

Dimana:

phalt
sumber
Mengapa saya tidak bisa menggunakan port 22 bukannya custom 23456?
IgorGanapolsky
1
@IgorGanapolsky Anda dapat melakukannya, tetapi 1) jika Anda memiliki komputer lain yang ingin Anda sambungkan melalui SSH di luar rumah Anda, akan ada konflik dan 2) lebih berisiko karena banyak "peretas" mencoba masuk melalui port 22 , jadi menutupnya sering disarankan di server
meneldal
2

Mengakses RaspberryPi Anda (atau bahkan laptop / server) dari luar jaringan rumah Anda (artinya, dari internet) bukanlah tugas yang mudah, karena laptop rumah Anda atau RaspberryPi hanya memiliki alamat IP lokal (dalam kisaran 10.xxx atau 192.168.xx jarak). Itu tidak memiliki alamat IP Publik yang terlihat dari Internet.

Jawaban sederhana untuk pertanyaan Anda adalah menggunakan layanan online gratis seperti SocketXP yang menyediakan titik akhir terowongan publik yang aman ke SSH ke RaspberryPi Anda dari luar jaringan rumah.

SocketXP menyediakan cara sederhana, aman dan mudah untuk mengakses RaspberryPi rumah Anda dari jaringan luar. SocketXP tidak mengharuskan Anda untuk meretas pengaturan apa pun di router WiFi Anda. Ini bekerja di luar kotak. Untuk mengetahui cara mengatur RaspberryPi Anda ke SSH dari luar, baca blog ini tentang cara remote SSH ke RaspberryPi Anda menggunakan SocketXP.

Cara mengatur SocketXP:

Langkah 1 : Instal SocketXP klien pada Raspberry Pi Anda menggunakan perintah berikut.

$ curl -O https://portal.socketxp.com/download/linux/socketxp && chmod +wx socketxp && sudo mv socketxp /usr/local/bin

Langkah2 : Hubungkan klien SocketXP dengan Layanan Cloud SocketXP menggunakan perintah berikut. Anda harus mendaftar di https://portal.socketxp.com untuk mendapatkan token autentikasi unik Anda.

$ socketxp -register "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NDk1MTg0MDAsImlkIjoiZ2FuZXNodmVscmFqYW5AZ21ha6K208n0.cB2uYevpH4lWIQGQUJdQ0eiEDqS8OiP_YOiqernnui3rjjadfadsfsfas34"

Langkah 3 : Dapatkan titik akhir terowongan publik untuk mengakses RaspberryPi Anda dari internet.

$ socketxp -connect tcp://localhost:22

Tunnel Access -> tunnel.socketxp.com:35277

Langkah4 : SSH ke dalam RaspberryPi Anda dari internet menggunakan perintah berikut.

$ ssh [email protected] -p 35277

di mana "raspberry-username" adalah nama pengguna / kata sandi yang Anda gunakan untuk SSH login ke RaspberryPi Anda.

Ganesh Velrajan
sumber
1

Pertanyaan ini sudah tua, seiring waktu semakin sedikit peluang Anda mendapatkan alamat IPv4 yang dapat diakses publik. Kemungkinan besar Anda berada di belakang CGNAT, artinya Anda berbagi satu IPv4 publik dengan pelanggan ISP lainnya. Jadi tidak mungkin untuk melakukan port-forward ke PI Anda atau apa pun.

Jika Anda memiliki IPv6, Anda dapat memberikan PI Anda alamat statis, dan memungkinkan akses ke sana pada router Anda. Banyak penyedia seluler sekarang memberikan IPv6 ke telepon. ISP lama "berbasis darat" (Fibre, DSL, coax dll) sering menyeret kakinya.

Anda juga bisa mendapatkan VPS murah (server pribadi virtual) dengan IPv4 publik di suatu tempat di cloud, dan membuat terowongan SSH dari PI ke VPS.

Lenne
sumber
0

Di atas jawaban phalt, Anda harus memeriksa salah satu layanan DNS dinamis, seperti No IP . Mereka memungkinkan Anda untuk mengakses jaringan rumah Anda di bawah nama host statis, meskipun alamat IP Anda dapat berubah setiap hari, karena DSL atau penyedia kabel memutuskan koneksi Anda. Mereka juga memiliki halaman persiapan yang bagus , yang juga memperkenalkan Anda untuk mengatur router Anda.

Anda mungkin ingin menginstal inadynpaket pada Raspberry Pi Anda untuk memperbarui entri DNS No-IP Anda, ketika IP berubah. Anda dapat melakukan ini dengan menjalankan:

sudo apt-get install inadyn

Dari README inadyn saya menerima panggilan sampel ini:

inadyn --dyndns_system [email protected] -u USER-p PASS -a HOST

Semoga ini membantu.

Arne
sumber
No-Ip memiliki DUC (klien pembaruan dinamis), yang akan memastikan addr IP Anda tidak berubah.
IgorGanapolsky
0

Tambahan untuk mengarahkan jawaban irwin:

Langkah 1:

jika Anda terhubung melalui wlan, gunakan:

iface wlan0 inet static
wpa-ssid "xxx" #<=your ssid
wpa-psk "yyy"  #<=your pw
address 192.168.1.xxx #<=preferred static ip (xxx<255)
netmask 255.255.255.0
gateway 192.168.1.1 #<=router's ip

Langkah 2:

setelah Anda mengubah hal di atas, Anda harus memulai ulang networking:

sudo /etc/init.d/networking restart
David Bielen
sumber
Saya juga menambahkan 2 baris di depan blok statis, auto wlan0 allow-hotplug wlan0 Saya menemukannya di posting ini raspberrypi.stackexchange.com/a/10320/10148 Saya juga mencoba melakukannya tanpa mereka tetapi ada sesuatu yang tidak berhasil.
XandruCea
Jawaban ini harus dianggap usang karena perubahan dalam konfigurasi jaringan Raspbian dan sistem init.
goldilocks
0

Selain itu, beberapa router memiliki dukungan bawaan untuk beberapa layanan DNS Dinamis, Anda dapat mengaktifkan opsi ini (jika ada) di router Anda untuk menghindari menginstal klien pada PI Anda (dan menyimpan sedikit overhead saat Anda melakukannya).

pengguna17925
sumber
0

Jadi, Anda memiliki server ssh (Raspberry PI Anda) di belakang firewall (router Anda) dan Anda ingin menghubungkannya dari mana saja. Mari kita asumsikan server ssh Anda sudah diatur dengan benar, yaitu menjalankan 'ssh username @ localhost date' di Raspberry Anda menunjukkan tanggal / waktu saat ini.

Anda harus menyelesaikan dua masalah:

  • Router Anda harus meneruskan port tetap ke port raspberry ssh Anda (biasanya 22).
  • Anda harus mengetahui alamat ip publik router Anda (yang biasanya berubah pada router yang terhubung kembali dan sebanyak sekali dalam 24 jam).

Port Forwarding & DynDNS

Solusi ada (seperti yang telah ditunjukkan oleh orang lain):

Jika diatur dengan benar, menghubungkan pi rasbperry Anda dimungkinkan dengan:

ssh username@[yourIP] -p [port] 
# or using dyndns 
ssh [email protected] -p [port]

Menggunakan sshhub.de

Solusi lain yang sangat mudah, tidak disebutkan sejauh ini, adalah SSHHub (penipu, saya penulisnya). Ini menggunakan penerusan ssh sendiri untuk mengakses Rasperry PI Anda dari mana saja. Ini dapat diandalkan, gratis dan sangat mudah untuk diatur . Daftar sekali:

ssh [email protected] register

berjalan di Raspberry PI Anda:

while true; do ssh [username]@sshhub.de -R 22:localhost:22 -N -o ServerAliveInterval=10; sleep 10; done

... dan itu saja! Anda dapat menghubungkan Raspberry Pi Anda dari mana saja:

ssh -J [username]@sshhub.de localhost
Oliver
sumber
Halo dan selamat datang di Raspberry Pi! Silakan ikuti tur dan kunjungi pusat bantuan untuk melihat bagaimana berbagai hal bekerja di sini. Terima kasih atas kontribusi Anda, tetapi harap dicatat bahwa kami dengan hormat meminta Anda untuk mengungkapkan afiliasi Anda dalam jawaban Anda . (Saya berasumsi bahwa Anda adalah penulis perangkat lunak yang disarankan.)
Ghanima
Terima kasih telah menunjukkan saya ke arah yang benar. Akulah penulisnya. Saya tentu ingin memberikan nilai dengan jawaban saya untuk orang yang mencari solusi. Dan saya harap pekerjaan saya juga sshhub.
Oliver
0

Anda bisa menggunakan VPN untuk mengaktifkan akses masuk ke pi Anda. OpenVPN adalah salah satu solusi, yang mengharuskan Anda memiliki komputer yang dapat diakses dari internet (port masuk). Namun, selama Anda memiliki satu komputer yang dapat diakses, komputer lain tidak perlu seperti mereka dapat menjadi klien ke server OpenVPN.

Opsi lain adalah menggunakan layanan seperti ZeroTier, yang menyediakan server terpusat untuk membuat VPN, jadi Anda tidak perlu menjalankan server Anda sendiri. Ini juga gratis.

Rebroad
sumber
Pilihan lain yang sangat bagus adalah menggunakan wireguard .
Ingo