Menyiapkan SSH melalui internet di Pi saya

16

Ini mungkin pertanyaan sederhana, tetapi karena saya telah membaca informasi yang bertentangan dari beberapa sumber (apa? Kontradiksi di internet?) Saya ingin tahu apakah saya melakukan semua yang seharusnya saya lakukan.

Jadi saya ingin mengatur koneksi SSH ke RasPi saya sehingga saya dapat mengaksesnya melalui internet.

  1. Saya mulai dengan mengaktifkan SSH pada Pi, menjalankan Raspbian, menggunakan raspi-configalat.
  2. Kemudian, saya menginstal klien no-ip.com pada Pi saya untuk memiliki nama host yang menunjuk ke alamat ip dinamis saya.
  3. Saya mencari ip LAN saya di raspberry saya menggunakan ifconfig
  4. Akhirnya, di utilitas konfigurasi router saya, di bawah penerusan port, saya mengaktifkan penerusan port 22 di TCP dan UDP ke ip lokal pi saya.

Setelah ini, saya tidak bisa SSH ke pi saya melalui internet. Ini berfungsi ketika saya mencoba menghubungkan di dalam LAN saya menggunakan ip lokal saya, tetapi tidak menggunakan nama host atau alamat ip internet saya. Saya juga mencoba menghubungkan dari lokasi yang berbeda dan tidak ada yang berhasil.

Pertanyaan saya: Apakah saya kehilangan langkah? Apakah ada file konfigurasi yang harus saya edit pada pi saya untuk membuat semuanya berfungsi?

Zeta
sumber
Harap sertakan output iptables -Lpada Pi Anda.
deed02392
1
Sudahkah Anda menyelesaikan masalah ini? Jika demikian, dapatkah Anda menandai jawaban yang mengatasinya atau membuat jawaban sendiri yang menyatakan apa yang Anda lakukan dan kemudian menandainya sebagai jawaban? Itu akan bagus ketika kami mencoba untuk mendapatkan situs T: Rasio naik dan pertanyaan ini tampaknya telah dibiarkan untuk sementara waktu tidak tersentuh oleh Anda @Zeta. Terima kasih!
RPiAwesomeness
Saya menggunakan no-ip.com untuk terhubung ke Pi saya melalui internet untuk web dan ssh jadi mungkin, mungkin router atau ISP Anda memblokir lalu lintas yang masuk?
Alastair Montgomery
Ini terdengar sangat mirip router yang tidak mendukung loopback NAT.
flakeshake
saya menemukan tautan ini: raspberryanywhere.com Mungkin ini bisa membantu. Saya telah menggunakan layanan ini dari beberapa minggu dan ini bekerja dengan sangat baik! Tautan ini menyediakan peninjau tim perangkat lunak sederhana yang suka mengakses papan raspberry Anda di mana pun Anda berada. Selain itu, Anda dapat menggunakan klien SSH yang biasa; mereka hanya memberikan alamat virtual untuk terhubung ke papan Anda melalui SSH atau HTTP. Layak dicoba pasti!
Stefano Stefano

Jawaban:

12

Jika Anda hanya berencana untuk terhubung ke Raspberry Pi Anda melalui SSH melalui internet, mungkin ngrok.com mungkin cocok dengan masalah Anda dengan cara yang paling nyaman.

Ini meneruskan port Anda dengan beberapa jenis terowongan terbalik dan bahkan dapat membantu melewati firewall atau pembatasan ISP Anda. Anda harus mendaftar (gratis) di situs untuk meneruskan trafik TCP.

Saya tidak berafiliasi dengan proyek ini dengan cara apa pun; Saya hanya menggunakannya untuk mencapai ide yang sama (dalam kasus saya meneruskan OpenVPN-Server) dan sejauh ini tidak menemui masalah.

Slubbix
sumber
Saya baru saja mengalami masalah ini dan menggunakan serveo.net bahkan lebih mudah daripada ngrok. Benar-benar gratis, 0 konfigurasi cukup tempel di perintah 22 port dengan alias kustom dan kemudian hubungkan.
Madhava Jay
3

Sebagian dari masalah Anda mungkin karena Pi menggunakan IP dinamis dari DHCP pada router Anda, penerusan port yang Anda atur tidak berfungsi, karena IP lokal Pi telah berubah.

Cara paling sederhana untuk memperbaikinya (setidaknya yang pernah saya lihat) adalah dengan mengatur IP statis. Ini relatif sederhana, asalkan Anda tidak keberatan mucking dalam file konfigurasi. Anda dapat membaca sedikit lebih mendalam di sini dan di sini . Saya juga akan menjelaskan cara sederhana di bawah ini:

  1. Hubungkan ke Pi Anda baik melalui SSH dalam jaringan rumah Anda atau melalui layar, baik berfungsi.

  2. Ambil pulpen dan kertas, Anda akan menuliskan beberapa info.

  3. Jalankan perintah ifconfig. Saya tahu Anda sudah menjalankannya, tetapi kami perlu mengumpulkan lebih banyak info tentang IP lokal Anda saat ini. Ini mengungkapkan informasi router Anda, bit yang Anda inginkan adalah setelah eth0 (koneksi ethernet). . . .

    eth0      Link encap:Ethernet  HWaddr b8:27:eb:b3:fc:2c
              inet addr:192.168.1.81  Bcast:192.168.1.255  Mask:255.255.255.0
    

    Tuliskan informasi berikut ...

    inet addr – 192.168.1.81 (Pi's Current IP Address)
    Bcast –  192.168.1.255 (The Broadcast IP Range)
    Mask –  255.255.255.0 (Subnet Mask Address)
    

    Jelas, info Anda akan berbeda dari tutorial ini, jadi pastikan Anda menggunakan info Anda dari ifconfigperintah yang dijalankan pada Pi.

  4. Sekarang jalankan netstat -nratau route -n. Kita butuh:

    Alamat 'Gateway' - 192.168.1.254 Alamat
    'Tujuan' - 192.168.1.0

  5. Sekarang kita memiliki info itu, kita dapat mengedit file antarmuka untuk mengatur IP dinamis. Lari sudo nano /etc/network/interfaces. Seharusnya terlihat seperti ini:

    file antarmuka

  6. Ubah baris:

    iface eth0 inet dhcp
    

    untuk

    iface eth0 inet static
    

    Kemudian langsung di bawah baris ini masukkan yang berikut ini ( Harap Dicatat. Anda akan memerlukan alamat Anda sendiri yang kami kumpulkan di atas ). . . .

    address 192.168.1.81
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.254
    

    Pada dasarnya, bagian alamat adalah apa yang Anda inginkan untuk IP Anda. Lebih tinggi lebih baik, karena ada sedikit kemungkinan konflik IP. netmask - Alamat 'Mask' yang kami tulis sebelumnya.

    jaringan - Alamat IP router, ini adalah Alamat 'Tujuan' ditemukan sebelumnya. Anda juga dapat mengambil ini dari router Anda, seharusnya mengatakan di samping di suatu tempat.

    broadcast - Alamat 'Bcast' yang kami tulis sebelumnya.

    gateway - Ini adalah alamat 'Gateway' yang kami temukan sebelumnya.

    Tekan Ctrl+ Odan salah Enteratau Ylalu Enter. Setelah selesai, tekan Ctrl+ X.

  7. Jalankan sudo rebootdan IP Anda harus ada di tempatnya! Masuk kembali dan jalankan ifconfigperintah lagi, dan seharusnya akan terlihat seperti ini sekarang:

    kemewahan!

Kemudian konfigurasikan penerusan port Anda ke IP statis baru Anda, dan semuanya akan berfungsi! Semoga berhasil!

Kehadiran RPi
sumber
2
Bisakah orang yang memilih menjelaskan mengapa? Saya pikir ini adalah solusi yang benar-benar valid dan bisa diterapkan. Saya ingin tahu mengapa saya bisa meningkatkan jawaban saya.
RPiAwesomeness
1
Ini hanya akan bekerja pada jaringan lokal dan bukan dari luar. OP bertanya bagaimana menghubungkan ke Pi melalui Internet dan bukan dari jaringan yang sama.
Chinmay Sarupria
Alamat seperti 192.168.1.100 adalah alamat lokal, saya dapat memiliki 2 Pi di 2 bagian kota yang berbeda dengan alamat lokal yang sama. Jadi tentu saja, saya tidak akan dapat mengakses keduanya dari luar jaringan.
Chinmay Sarupria
Jika Anda memberi RPi alamat IP statis, Anda harus mengecualikannya dari kelompok DHCP, jika tidak, perangkat lain di jaringan Anda mungkin akan mendapatkannya dan Anda akan mengalami konflik IP.
Dmitry Grigoryev
2

Satu-satunya hal yang Anda keliru konfigurasi adalah bahwa SSH adalah protokol TCP saja, sehingga Anda tidak perlu meneruskan lalu lintas UDP pada port 22.

Sekarang mengapa tampaknya tidak berfungsi mungkin karena router Anda tidak mendukung loopback NAT . Apa artinya adalah bahwa aturan NAT (seperti penerusan Anda) tidak berlaku ketika asal koneksi berasal dari LAN internal Anda. Tidak semua router memiliki fitur ini AKTIF. Jadi jika router Anda tidak mendukung loopback NAT, maka Anda tidak akan dapat terhubung ke RPi Anda menggunakan SSH saat menggunakan nama domain no-ip.com dan ketika melakukannya dari LAN Anda .

Untuk mencoba apakah konfigurasi Anda berfungsi, jika Anda memiliki ponsel cerdas dengan beberapa koneksi data (3G, LTE, dll.) Dan ada klien ssh di sana, cobalah untuk terhubung ke RPi Anda menggunakan paket data dan bukan koneksi WiFi Anda. Jika Anda tidak memiliki klien ssh di dalamnya dan Anda diizinkan melakukan tethering, maka gunakan ponsel cerdas Anda bersama dengan salah satu komputer Anda dengan mencabutnya untuk jaringan lokal Anda dan menggunakan tautan tethering sebagai gantinya.

Huygens
sumber
0

Coba gunakan nama domain gratis, misalnya co.cc atau yang serupa, dan freeDNS (mereka juga menyediakan berbagai subdomain) untuk mengarah ke router Anda. Saya pikir Anda juga bisa mendapatkan skrip pembaruan jika router Anda memiliki IP dinamis.

Jika itu tidak berhasil, mungkin pengaturan untuk penerusan port Anda salah? Jenis router apa yang Anda miliki?

Samadi
sumber
Try using a free domain name...Dia memang melakukan itu, itulah klien no-ip. Ini jauh lebih sederhana daripada harus dipusingkan dengan DNSing dan router manual.
RPiAwesomeness
@RPiAwesomeness Maaf, tidak tahu itu.
Samadi
Tidak masalah. Saya hanya melakukan tugas saya sebagai anggota Stack Exchange dan memoderasi situs. Itu hanya sedikit kritik yang bermanfaat. Tolong jangan menganggapnya sebagai serangan terhadap Anda, saya hanya mencoba membantu menjaga konten di situs ini bermanfaat dan informatif. Silakan terus mencoba membantu dan menjawab pertanyaan dan terlibat, Anda akan mulai mendapatkannya. :) Juga, mampir ke obrolan dari waktu ke waktu. Orang-orang yang ada di sana sangat suka memiliki perusahaan, dan itu menunjukkan bahwa situs ini bermanfaat dan berkembang dan memiliki basis pengguna yang baik dan terlibat.
RPiAwesomeness
0

Saya mengalami situasi ini di Finlandia: rpi terhubung ke router wifi seluler, huawei e5776, dan saya ingin terhubung ke rpi dengan SSH melalui internet, tanpa hasil sejauh ini dan akhirnya saya tahu Penyedia Layanan Internet saya memblokir koneksi dua arah untuk pelanggan broadband seluler. Lalu lintas dua arah untuk mereka adalah layanan tambahan, (yang harus Anda bayar) disebut gerbang terbuka oleh ISP saya. Jadi pergilah ke situs ISP Anda sendiri untuk melihat apakah itu masalahnya.

toomanyhours
sumber
0

Slubbix menunjukkan kemungkinan masalah bahwa alamat IP lokal Raspberry Pi tidak diperbaiki. Ini akan membuat port forward di router Anda tidak bisa diandalkan. Secara default Raspberry Pi dikonfigurasi untuk menggunakan DHCP. Ini berarti bahwa IP diberikan oleh router. IP ini secara default juga tidak diperbaiki.

Salah satu solusi untuk masalah ini sudah ditunjukkan oleh Slubbix : untuk membuat IP Raspberry Pi diperbaiki.

Menurut pendapat saya ini memiliki dua kelemahan: tidak ada daftar global IP di jaringan Anda yang mudah dipelihara dan Anda tidak dapat menggunakan Raspberry Pi Anda di jaringan lain (IP sudah digunakan atau submask yang berbeda).

Oleh karena itu saya mengusulkan untuk melakukan hal berikut: mengkonfigurasi router Anda untuk menetapkan IP tetap ke alamat MAC Raspberry Pi Anda. Alamat MAC dapat ditemukan menggunakan perintahifconfig

Wouter van der Put
sumber
0

Alamat IP lokal Raspberry Pi Anda tidak diperbaiki, kecuali jika Anda menggunakan adaptor nirkabel untuk menghubungkan, yang akan menjaga alamat IP-nya. Jika Anda ingin menggunakan SSH untuk RPI, Anda dapat menggunakan langkah-langkah ini:

Mulai Pi Anda ke terminal prompt. Ketik perintah berikut "sudo apt-get install xrdp" Jika dipromosikan masukkan kata sandi Anda (defaultnya adalah "raspberry") Ketik "Y" dan tekan enter. Ini sekarang menginstal xrdp ke Pi Anda yang merupakan perangkat lunak yang akan kita gunakan untuk koneksi desktop jarak jauh. Tunggu sampai selesai. Mulai ulang Pi Anda. Kami akan memeriksa bahwa xrdp akan memulai secara otomatis. Ketika Pi Anda boot ke command prompt, cari [ok] Memulai server Remote Desktop Protocol: xrdp sesman. Ini menunjukkan kepada Anda bahwa xrdp diinstal dan secara otomatis memulai pada saat memulai Pi Anda. Langkah terakhir adalah membuat catatan alamat IP Pi Anda yang juga harus ditampilkan pada layar mulai. Dalam kasus saya di bawah ini adalah 192.168.1.9.

Pengaturan Mesin Kedua

  1. Luncurkan Remote Desktop Connection yang dapat ditemukan di Start-> All Programs-> Accessories-> Remote Desktop Connection
  2. Ketikkan Alamat IP untuk Pi Anda yang Anda catat di atas.

  3. Klik Sambungkan (Anda mungkin mendapatkan peringatan keamanan pada tahap ini cukup klik OK jika Anda melakukannya. Setelah semua itu adalah Pi Anda di jaringan Anda sehingga tidak perlu khawatir tentang keamanan bijaksana).

  4. Biarkan Modul pada default sesman-Xvnc dan masukkan nama pengguna dan kata sandi Anda untuk Pi Anda. (Defaultnya adalah pi dan raspberry jika Anda belum mengubahnya).

  5. Klik OK dan setelah beberapa saat Anda akan disambut desktop Raspberry Pi Anda!

  6. Ketika Anda selesai, cukup log-out dari desktop Pi.

Saya menemukan langkah ini dari sini dan mereka bekerja untuk saya

Berikut cara lain untuk menggunakan SSH:

SSH ke Raspberry Pi Saya biasanya masuk ke Raspberry Pi saya melalui SSH, atau Secure Shell untuk memberikannya nama lengkapnya. Ini memungkinkan akses baris perintah, ke Raspberry Pi Anda, dari komputer lain. Meskipun dimungkinkan untuk SSH ke Raspberry Pi dari mana saja di dunia, dan saya lakukan, posting ini hanya mencakup akses SSH melalui jaringan lokal. Saya akan membahas koneksi jarak jauh di posting blog mendatang.

Meskipun ini tidak memberikan akses ke GUI (Graphical User Interface), memiliki akses ke baris perintah umumnya memungkinkan saya untuk melakukan 95% dari apa yang perlu saya lakukan. 5% lainnya mungkin saya bisa lakukan melalui SSH, tetapi kadang-kadang Anda tidak bisa mengalahkan kenyamanan seorang GUI. :-)

Pertama-tama Anda perlu mengetahui alamat IP Raspberry Pi yang ingin Anda masuki. Jika Anda tidak yakin bagaimana menemukan ini, maka baca posting blog saya yang menjelaskan bagaimana Anda dapat melakukan ini dari jarak jauh menggunakan alat luar biasa yang disebut nmap.

Untuk SSH ke Raspberry Pi Anda dari komputer Linux atau Apple Mac ini sangat mudah. Anda cukup mengetik nama pengguna dan alamat IP Anda di baris perintah menggunakan format berikut:

ssh username @ IPaddress

Pastikan Anda mengganti nama pengguna dengan nama pengguna yang ingin Anda masuki dengan komputer jarak jauh. Alamat IP harus mengambil format 192.168.1.66

Anda mungkin mendapatkan pesan yang menjelaskan bahwa keaslian host tidak dapat dibuat, dan jika Anda yakin ingin terus terhubung. Anda hanya akan melihat pesan ini saat pertama kali Anda menggunakan SSH ke Raspberry Pi Anda. Cukup ketik ya.

Anda kemudian akan diminta kata sandi Anda, masukkan kata sandi untuk nama pengguna yang Anda coba hubungi.

Untuk windows, ini sedikit lebih sulit untuk diatur karena memerlukan perangkat lunak tambahan yang disebut Putty. Namun begitu diinstal ini sangat mudah digunakan.

Pertama pergi ke situs web Putty, www.putty.org, unduh dan instal perangkat lunak.

Setelah terinstal, masukkan Putty

Di bawah Nama Host (atau alamat IP) ketikkan alamat IP yang ingin Anda sambungkan. Pilih tombol radio SSH. Dalam kotak di bawah Sesi Tersimpan, ketikkan nama untuk mengidentifikasi komputer ini, seperti Raspberry Pi, lalu klik Simpan. Mengklik Open sekarang harus memulai sesi SSH Anda.

Lain kali Anda ingin SSH ke dalam Raspberry Pi Anda, Anda hanya perlu memuat Putty, klik pada sesi yang disimpan untuk menyorotnya dan kemudian klik Buka. Setelah Anda mengetik kata sandi, saat ditanya, Anda memiliki akses jarak jauh ke Raspberry Pi Anda.

Saya menemukan instruksi ini dari sini

Manusia
sumber
Saya gagal melihat bagaimana instruksi ini membantu dalam mengakses RPi melalui Internet
Dmitry Grigoryev
0

Satu hal yang saya perhatikan untuk internet saya adalah ketika saya port forwarder server web saya dan saya mencoba untuk terhubung menggunakan ip publik saya itu akan mengatakan bahwa itu tidak tersedia, tetapi ketika saya terhubung ke sana di ponsel saya atau di jaringan sekolah saya Saya dapat terhubung dengannya, juga satu hal yang dapat Anda coba lakukan adalah pergi ke google dan ketik "IP" ke dalam kotak pencarian, salin ip yang diberikan kepada Anda dan kemudian pergi ke google menerjemahkan dan menempelkannya di ip Anda, dan kemudian klik pada alamat ip biru di jendela kanan, dan itu akan menunjukkan kepada Anda jika Anda berhasil portforward server web Anda.

Austinthemighty
sumber
0

Untuk mengizinkan lalu lintas masuk pada port SSH default (22), Anda bisa memberi tahu iptables untuk mengizinkan semua lalu lintas TCP pada port tersebut masuk.

sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT

Mengacu kembali ke daftar di atas, Anda dapat melihat bahwa ini memberi tahu iptables:

  1. tambahkan aturan ini ke rantai input ( -A INPUT) jadi kami melihat lalu lintas masuk
  2. periksa untuk melihat apakah itu TCP ( -p tcp).
  3. jika demikian, periksa untuk melihat apakah input masuk ke port SSH ( --dport ssh).
  4. jika demikian, terima input ( -j ACCEPT).

Semoga ini berfungsi untuk Anda juga Anda mungkin ingin menambahkan port ftp yang 20-21, cukup ubah sshke 20dan 21.

Austinthemighty
sumber
0

Saya tidak yakin apakah pertanyaan ini membutuhkan jawaban tambahan tetapi cukup sederhana.

  1. Instal OpenSSH atau aktifkan dari raspi-config

  2. Buka beranda router / firewall Anda dalam kasus saya 192.168.1.1

  3. Cari port forwarding atau server virtual dan tambahkan sesuatu seperti berikut ini:

    Port eksternal mulai: 1234 Port akhir eksternal: 1234

    Port internal mulai dan berakhir 22.

    Server IP adalah IP statis RPi Anda dalam kasus saya 192.168.1.50

  4. Setelah semuanya diatur di sisi router catat IP WAN Anda dengan mencari IP Anda di Google.

  5. Sekarang Anda harus dapat SSH ke pi melalui internet. Dalam kasus saya, saya menggunakan Chromebook dan shell aman ditambahkan. Saya mengetikkan nama pengguna dalam kasing saya pi@mywanipdan port 1234.

Pada dasarnya aturan firewall dalam langkah 3 meneruskan semua lalu lintas pada port WAN IP 1234 ke port LAN IP internal 22.

Hani Umer
sumber
-1

Saya banyak berjuang dengan mengatur SSH melalui internet sampai saya menemukan metode sederhana ini:

http://raspctl.com

Cukup daftar dan salin dan tempel perintah. Anda mungkin perlu mengedit file konfigurasi tetapi hanya itu. Saya mengujinya hari ini dan itu berfungsi seperti pesona. Saya mencobanya dengan aplikasi Android SSH yang berbeda juga.

alkopop79
sumber
Lupa menyebutkan: setel penerusan port pada router Anda!
alkopop79
1
FYI: Proyek itu tampaknya telah dihentikan.
bobstro