SSH'yi ev ağından kullanma


16

Son zamanlarda Raspberry Pi'ye SSH kurdum. Özellikle iPhone'um üzerinden uygulamayı Server Auditor ile kontrol edebildiğim için yüzmeye devam ediyor . Ne yazık ki, bu sadece yerel ağ üzerinden çalışır.

Evde olmadığımda SSH'mi nasıl çalıştırabilirim? (Tercihen uygulama ile çalışır.)


yönlendiricinizden bir bağlantı noktası iletebilir misiniz?
SteveIrwin

1
@SteveIrwin Büyük olasılıkla yapabilirim, ancak ağ okuryazarı olmadığım için, Port Haritası gibi kolay bir çözümü tercih ederim . Aslında ... Mac'imin internetini Pi ile paylaşırsam, yönlendirilen Bağlantı Noktalarını paylaşabilir miyim?
xxmbabanexx

1
bir bağlantı noktası ileri ayarlamak muhtemelen en azından Bağlantı Noktası Haritası'nı kullanmak kadar kolaydır. LAN'ınızın nasıl kurulduğu hakkında bize daha fazla bilgi vermelisiniz
John La Rooy

En iyi seçeneğiniz Weaved hizmetini (www.weaved.com) kurmak ve onunla yapılmasıdır. İnternette bulacağınız diğer tüm eğitimler sizi sinir bozucu bir yola götürecektir.
IgorGanapolsky

bukle -O RPI'nin bulunan indirme socketxp için aşağıdaki socketxp kullanım kullanımını önerir yazı için portal.socketxp.com/download/arm/socketxp Linux yerine && chmod + wx socketxp && sudo mv socketxp / usr / local / bin dosya.
jeonghoon

Yanıtlar:


20

İşte kullanışlı bulabileceğiniz adımları (debian'da).

1.Pi için Statik IP Ayarlama.

a. komutunu kullanarak arabirimler dosyasını açın

sudo nano /etc/network/interfaces

b.Arabirimleri dosyasını aşağıdaki şekilde değiştirin (Bu benim için çalışıyor Birkaç satırın hariç tutulabileceğinden emin değilim).

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

Ip'in ifconfig komutu kullanılarak değiştirilip değiştirilmediğini kontrol edin

Dinamik bir DNS ayarlama

Büyük olasılıkla ISS'niz tarafından atanan IP adresi dinamiktir ve bu nedenle IP adresindeki değişiklikleri çözmenin bir yoluna ihtiyacımız var.Bunu elde etmek için dnsdinamik ve ddclient yazılımı kullanıyorum.

dnsdynamic'e sahip bir hesap için kaydolun

b.Add list.You gelen yeni bir etki alanı ve bir isim seçmek ve etki alanı üzerinde subdomain.Click seçiminize mevcut alanların herhangi birinden seçebilir çek temin edilebilirliği ve daha sonra ekleme

dnsdynamic ekran görüntüsü

3. pi üzerinde ddclient ayarlama

a. ddclient komutunu kullanarak yükleyin

sudo apt-get install ddclient

Aşağıdaki komutu kullanarak ddclient için yapılandırma dosyasını açın ve aşağıdaki satırları ekleyin.

sudo nano /etc/ddclient.conf

ve dosyayı aşağıdaki gibi değiştirin.

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

ve dosyayı kaydedin.

ddclient hizmetinin yeniden başlatmalarda otomatik olarak başlamasını istiyoruz.

sudo nano /etc/rc.local

Çıkış 0'dan önce aşağıdaki komutu ekleyin (son satır olan)

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

Ddclient'i başlatmak için pi'nizi yeniden başlatın veya istemde yukarıdaki komutu yürütün.

4.Port Yönlendirme

Yönlendiricinizin modelini bulun.

b.Go için portforward.com

Yönlendirme portu hakkında ayrıntılı kılavuz bulmak için yönlendiricinizin markasını ve modelini girin.

Yönlendirici markasını ve modelini seçtikten sonra, yeniden yönlendirilen sayfadan Varsayılan kılavuzu tıklayın.

e.In Statik Ip Metin Kutusu , 1. adımda verdi Pi Statik IP girin.

f. adımları ve ileri port 22 takip edin. kaynak port 22 olması gerekir ve hedef port herhangi bir şey olabilir. pi içine sshing zaman Hedef Port kullanmayı unutmayın. karışıklığı önlemek için, ben aynı Kaynak ve Hedef kullanma eğilimindedir Liman.

Eğiticiyi izliyorsanız, ip adresini alan adıyla değiştirerek herhangi bir yerden pi'nize giriş yapın. Örn: Pi@hometorrent.dnsdynamic.com: 22 kullanıyorum.


Çok teşekkürler! Exeter ziyaret geri döndüğünüzde bunu deneyeceğim!
xxmbabanexx

1 Güzel cevap Ancak, gerçekten kullanmaya gerek yoktur sudoyılında /etc/rc.local, zaten root olarak çalışan değil mi?
HeatfanJohn

Böylece Ngrok ve Weaved konfigürasyonlarımı tamamen berbat ettim. Şimdi hiç bağlanamıyorum!
IgorGanapolsky

2

İlk olarak bağlantı noktası yönlendirmeyi ayarlamak istersiniz. Her yönlendirici biraz farklıdır, bu nedenle yönlendiricinizin özelliklerini aramanız gerekir.
Orada kılavuzları nasıl yapılır jenerik port yönlendirme çoğu yönlendiricileri için çalışabilir, ancak gerçek yönlendirici modeli için bir rehber bulmakta öneririm.

Ahududu pi'nize 23456 gibi bir şey bağlamak için unutulmaz bir bağlantı noktası ayarlayın. Genel bağlantı noktası numaralarının üzerine yazmamaya dikkat edin .

Son olarak, ssh kullanarak aşağıdakileri yapın:

$ ssh -p 23456 user@IP

Nerede:


Özel 23456 yerine neden 22 numaralı bağlantı noktasını kullanamıyorum?
IgorGanapolsky

1
@IgorGanapolsky bunu yapabilirsiniz, ancak 1) evinizin dışında SSH üzerinden bağlanmak istediğiniz başka bir bilgisayarınız varsa, bir çatışma olacaktır ve 2) birçok "hacker" bağlantı noktası 22 üzerinden giriş yapmaya çalıştığından daha riskli olacaktır. , bu yüzden genellikle sunucularda kapatılması önerilir
meneldal

2

Ev dizüstü bilgisayarınız veya RaspberryPi'nizin yalnızca yerel IP adresi (10.xxx aralığında veya 192.168.xx) olduğu için RaspberryPi'nize (veya dizüstü bilgisayarlarınıza / sunucularınıza) ev ağınızın dışından (yani, internetten) erişmek kolay bir iş değildir. Aralık). İnternetten görünen bir Genel IP adresi yok.

Sorunuzun basit cevabı, SSP'ye ev ağının dışından RaspberryPi'nize güvenli bir genel tünel bitiş noktası sağlayan SocketXP gibi ücretsiz çevrimiçi hizmetleri kullanmaktır .

SocketXP, RaspberryPi evinize dış ağdan erişmenin basit, güvenli ve kolay bir yolunu sunar. SocketXP, WiFi yönlendiricinizde herhangi bir ayarı hacklemenizi gerektirmez. Kutudan çıkar çıkmaz çalışır. RaspberryPi'nizi dışarıdan SSH'ye nasıl kuracağınızı öğrenmek için SocketXP kullanarak SSH'yi RaspberryPi'nize nasıl uzaktan yükleyeceğinizle ilgili bu blogu okuyun .

SocketXP nasıl kurulur:

Adım 1 : Aşağıdaki komutu kullanarak RaspberryPi'nize SocketXP istemcisini kurun.

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

Adım 2: SocketXP istemcisini aşağıdaki komutu kullanarak SocketXP Cloud Service ile bağlayın. Benzersiz kimlik doğrulama jetonunuzu almak için https://portal.socketxp.com adresinden kaydolmanız gerekir .

$ socketxp -register "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NDk1MTg0MDAsImlkIjoiZ2FuZXNodmVscmFqYW5AZ21ha6K208n0.cB2uYevpH4lWIQGQUJdQ0eiEDqS8OiP_YOiqernnui3rjjadfadsfsfas34"

Adım3 : İnternetten RaspberryPi'nize erişmek için genel bir tünel uç noktası alın.

$ socketxp -connect tcp://localhost:22

Tunnel Access -> tunnel.socketxp.com:35277

Adım 4 : Aşağıdaki komutu kullanarak internetten RaspberryPi'nize SSH.

$ ssh raspberry-username@tunnel.socketxp.com -p 35277

burada "ahududu-kullanıcı adı", RaspberryPi'nize SSH girişinde kullandığınız kullanıcı adı / şifredir.


1

Bu soru eskidir, zaman geçtikçe halka açık bir IPv4 adresi alma şansınız daha azdır. Büyük olasılıkla bir CGNAT'ın gerisindesiniz, yani tek bir ortak IPv4'ü ISS'nin diğer müşterileriyle paylaşırsınız. Bu nedenle, PI'nıza veya başka bir şeye bir bağlantı noktası iletmek mümkün değildir.

IPv6'nız varsa, PI'nıza statik bir adres verebilir ve yönlendiricinizde adrese erişime izin verebilirsiniz. Birçok mobil sağlayıcı artık telefonlara IPv6 veriyor. Eski "kara tabanlı" İSS'ler (Fiber, DSL, koaksiyel vb.) Genellikle ayaklarını sürükler.

Ayrıca bulutun herhangi bir yerinde genel bir IPv4 ile ucuz bir VPS (sanal özel sunucu) alabilir ve PI'den VPS'ye bir SSH tüneli oluşturabilirsiniz.


0

Phalt'ın cevabının üstünde, IP yok gibi dinamik DNS hizmetlerinden birine göz atmalısınız . DSL veya kablo sağlayıcınızın bağlantısının kesilmesi nedeniyle IP adresiniz her gün değişebilmesine rağmen, ev ağınıza statik bir ana bilgisayar adı altında erişmenize olanak tanır. Onlar da güzel olması başlarken de buna göre yönlendirici kurma tanıtır sayfası yer almaktadır.

inadynIP değiştiğinde IP Yok DNS girişlerinizi güncellemek için paketi Raspberry Pi'nize yüklemek isteyebilirsiniz . Bunu çalıştırarak yapabilirsiniz:

sudo apt-get install inadyn

İnadyn README'den bu örnek çağrıyı aldım:

inadyn --dyndns_system default@no-ip.com -u USER-p PASS -a HOST

Bu yardımcı olur umarım.


No-Ip, IP adresinizin değişmemesini sağlayacak bir DUC'ye (dinamik güncelleme istemcisi) sahiptir.
IgorGanapolsky

0

Steve irwin'in cevabına ek olarak:

Aşama 1:

wlan üzerinden bağlanıyorsanız şunları kullanın:

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

Adım 2:

Yukarıdakileri değiştirdikten sonra, yeniden başlatmanız gerekir networking:

sudo /etc/init.d/networking restart

Ayrıca statik bloğun önüne 2 satır ekledim, otomatik wlan0 allow-hotplug wlan0 Bu yazıda buldum raspberrypi.stackexchange.com/a/10320/10148 Ayrıca onlarsız yapmaya çalıştım ama bir şey işe yaramadı.
XandruCea

Raspbian'ın ağ yapılandırmasındaki ve başlangıç ​​sistemindeki değişiklikler nedeniyle bu yanıt güncelliğini yitirmiş olmalıdır.
goldilocks

0

Buna ek olarak, bazı yönlendiricilerin bazı Dinamik DNS hizmetleri için yerleşik desteği vardır, istemciyi PI'nize yüklemekten kaçınmak (ve işteyken biraz ek yük kaydetmek) için yönlendiricinizde bu seçeneği etkinleştirebilirsiniz.


0

Yani, bir güvenlik duvarının (yönlendiriciniz) arkasında bir ssh sunucunuz (Raspberry PI'niz) var ve onu her yerden bağlamak istiyorsunuz. Ssh sunucunuzun düzgün kurulduğunu varsayalım, yani Ahududu'nuzda 'ssh kullanıcı adı @ localhost tarih' çalıştırdığınızda geçerli tarih / saat gösterilir.

İki problemi çözmelisiniz:

  • Yönlendiriciniz ahududu ssh portunuza sabit bir port iletmelidir (genellikle 22).
  • Yönlendiricilerinizin genel IP adresini bilmelisiniz (genellikle yönlendiricinin yeniden bağlanmasında ve 24 saatte bir kez değiştiğinde).

Port Yönlendirme ve DynDNS

Çözümler var (başkaları tarafından belirtildiği gibi):

Doğru şekilde kurulursa rasbperry pi'nizi aşağıdakilerle bağlamak mümkün olabilir:

ssh username@[yourIP] -p [port] 
# or using dyndns 
ssh username@myname.dyndns.org -p [port]

Sshhub.de kullanma

Şimdiye kadar bahsedilmeyen bir başka çok uygun çözüm, SSHHub (yasal uyarı, ben yazarım). Rasperry PI'nize her yerden erişmek için ssh'nin kendi yönlendirmesini kullanır. Güvenilir, ücretsiz ve kurulumu oldukça basit . Bir kez kayıt olun:

ssh info@sshhub.de register

Raspberry PI'nizde çalıştırın:

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

...ve bu kadar! Raspberry Pi'nizi her yerden bağlayabilirsiniz:

ssh -J [username]@sshhub.de localhost

Merhaba ve Raspberry Pi'ye hoş geldiniz! Burada tura katılın ve işlerin nasıl çalıştığını görmek için yardım merkezini ziyaret edin . Katkınız için teşekkür ederiz, ancak yanıtlarınızda ilişkinizi açıklamanızı istediğimizi lütfen unutmayın . (Önerilen yazılımın yazarı olduğunuzu varsayıyorum.)
Ghanima

Beni doğru yöne yönlendirdiğiniz için teşekkürler. Ben yazarım. Çözüm arayan insanlar için cevabımla kesinlikle değer vermek istiyorum. Ve umarım sshhub'ın kendisi kadar yapar.
Oliver

0

Pi'nize gelen erişimi etkinleştirmek için bir VPN kullanabilirsiniz. OpenVPN, internetten erişilebilen bir bilgisayara (gelen bir bağlantı noktası) sahip olmanızı gerektiren bir çözümdür. Ancak, erişilebilir bir bilgisayarınız olduğu sürece, diğer bilgisayarların OpenVPN sunucusunun istemcisi olabileceği gibi olması gerekmez.

Başka bir seçenek, VPN oluşturmak için merkezi sunucular sağlayan ZeroTier gibi bir hizmet kullanmaktır, böylece kendi sunucunuzu çalıştırmanız gerekmez. Bu da ücretsiz.


Bir başka çok iyi seçenek tel örgü kullanmaktır .
Ingo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.