Ubuntu sunucusuna harici olarak SSH ile bağlanma


25

Son zamanlarda Ubuntu Server 12.04'ü (Precise Pangolin) yükledim ve bunu öncelikle bir dosya sunucusu olarak kullanmayı düşünüyorum. Linux için tamamen yeniyim, bu yüzden bu oldukça büyük bir öğrenme eğrisi. Dün PuTTY'yi Windows 7 makinemde bir SSH anahtar çifti kullanarak yapılandırabilirim , böylece Ubuntu Sunucusunu masaüstümden yönetebilirim. Bu, her iki makinenin aynı ağ üzerinde olması koşuluyla gayet iyi çalışır.

Dizüstü bilgisayarımda ( MacBook Air ) her zaman aynı ağda olmayabilir. Ubuntu sunucusuna dizüstü bilgisayarımdan SSH üzerinden farklı bir ağda bağlanabilmek mümkün mü?

Avahi arka planını, sunucunun ana bilgisayar adı LAN'da yayınlanacak ve yönlendiriciyi her zaman aynı IP adresini sunucuya atayacak şekilde yapılandırdım. Bunun dışında sunucuya kurduğum tek şey OpenSSH. Burada parola doğrulamayı devre dışı bıraktım, böylece sadece bir anahtar çifti kullanarak bağlanabileceksin.

Dizüstü bilgisayarımdaki terminalden böyle bir şey yapabileceğimi düşündüm:

ssh my.external.ip.address user@hostname.local

Bu komutu denediğimde hatayı alıyorum:

ssh: my.external.ip.address port 22'yi barındırmak için bağlan: işlem zaman aşımına uğradı

Ben de denedim

ssh my.external.ip.address user@servers.local.ip.address

ve daha önce olduğu gibi aynı hata iletisini alıyorum. Bu size ne yapmaya çalıştığım hakkında bir fikir vermeli, ama bu mümkün mü ve eğer öyleyse, nasıl yaparım?

Dizüstü bilgisayarımdan ssh üzerinden harici bir bağlantı kurabileceğimi farz edersem, ISS'min harici IP adresimi değiştirmesi muhtemeldir, bu da harici bağlantıyı kesecektir. Sağlam bir şekilde bağlanabilmek istiyorum, yani, eğer ISS'm harici IP adresini değiştirirse, hala yeni harici IP adresinin ne olduğunu bilmeden sunucuya uzaktan bağlanabilecektim.

Yanıtlar:


23

Her şeyden önce, doğru komut şudur: ssh user@my.external.ip.address

Ve yönlendirici, SSH port 22'yi sunucunuzun yerel IP adresine iletecek şekilde yapılandırılmalıdır.

Daha fazla hata ayıklama için:

1) Sunucunuzda ve yönlendiricinizde 22 numaralı bağlantı noktasının (SSH) açık olup olmadığını kontrol edin (bağlantı noktası iletme).

2) SSH sunucusunun sunucunuzda çalıştığını kontrol edin

3) Kullanımı ping , ssh -vbağlantı ve görünüm iken /var/log/auth.logbaşka bağlantı sorunları hata ayıklamak için.

1) Yönlendiricinizde: yönlendiriciye özel talimatları izleyin

Sunucunuzda: sudo ufw status (başka bir güvenlik duvarı yapılandırma yardımcı programı kullanmıyorsanız) veya sudo iptables -L(genel yöntem, ancak karmaşık çıktı)

22 numaralı bağlantı noktasını açmak için: sudo ufw allow 22

cf https://help.ubuntu.com/12.04/serverguide/firewall.html

2) Yüklendiğini kontrol edin: dpkg -l openssh-server

Çalıştığını kontrol edin: service ssh status veyaps aux | grep sshd

3) Bağlanan müşteride:

  • ping my.external.ip.address
  • ssh -v user@my.external.ip.address

Sunucuda:

  • sudo less /var/log/auth.log

Gerekirse yönlendirici günlüklerini de kontrol edebilirsiniz.

İşte bir çevrimiçi port tarayıcı: https://www.grc.com/x/ne.dll?bh0bkyd2

Nmap gibi araçları kullanabileceğini düşünüyorum. veya diğerleri gibi , ancak henüz onlara aşina değilim.

Değişen bir harici IP adresiyle ilgilenmek:

1) Bir dynDNS veya benzeri bir hesap edinin: http://dyn.com/dns/

Dinamik DNS sağlayıcılarının listesi:

2) Başka bir çözüm, harici IP adresinizi düzenli olarak size postalayan veya dropbox gibi bir çevrimiçi depolama hizmetine sokan bir crontab işi oluşturmaktır.

İşte bir arkadaşımın kullandığı bir senaryo:

    #!/bin/bash
    # Bash script to get the external IP address
    MYWANIP=$(curl http://mire.ipadsl.net | sed -nr -e 's|^.*<span class="ip">([0-9.]+)</span>.*$|\1| p')
    echo "My IP address is: $MYWANIP"

    IPold=$(cat /home/USER/Dropbox/test.txt)
    echo "Previous IP Address: $IPold"

    if [[ $IPold != $MYWANIP ]] ;
    then
      echo "New IP"
      rm /home/USER/Dropbox/test.txt
      echo $MYWANIP >> /home/USER/Dropbox/test.txt;
      echo $MYWANIP;
    else
      echo "Same IP";
    fi

    # example crontab entry:
    ## m h  dom mon dow   command
    ## */10 * * * * /home/USER/Dropbox/test_ip.sh

Yönlendirici bağlantı noktası iletme:

1) Öncelikle, çalıştırarak yönlendiricinizin yerel IP adresini bulun:

ip route | grep default

Genellikle 192.168.xx gibi bir şey

Alternatif yollar ve diğer işletim sistemi çözümleri:

2) Yönlendiriciye yerel olarak bağlı herhangi bir bilgisayarı kullanarak, daha önce bulunan IP’ye erişin, yani http://192.168.1.1 . Bu yönlendirici yapılandırma arayüzünü getirmelidir.

3) Sonraki adımlar yönlendiricinize bağlı olarak değişir. Örneğin OpenWRT'li bir router üzerinde nasıl yapıldığı:

https://newspaint.wordpress.com/2012/08/26/how-to-add-a-port-forward-using-the-web-interface-on-openwrt-10-03-1/


Bunun için şimdi önerileri gözden geçireceğim.
Aesir

Tamam, tek yapmam gereken yönlendiricimin 22 numaralı bağlantı noktasını sunucuya iletmekti ve çok çalıştı. Dış IP adresimin değişebileceği konusundaki sorumun ikinci bölümünü çözebileceğim bir yol var mı? - Düzenlemenizi yeni gördüm, şimdi okuyacak.
Aesir

Yönlendiricimdeki 22 numaralı bağlantı noktasını sunucuya nasıl iletebileceğimi açıklayabilir misiniz? Bu ne anlama geliyor? Teşekkür ederim!
xxx222 11:16

Bu, hangi yönlendiriciye sahip olduğunuza bağlıdır, ancak genellikle bir yerde bir bağlantı noktası iletme veya güvenlik duvarı ayarları sayfası olmalıdır. İşte OpenWRT ile bir yönlendirici bunu nasıl geçerli: newspaint.wordpress.com/2012/08/26/... Çoğu yönlendirici tarayıcınızdan 192.168.1.1 veya benzer 192.168.xx adrese giderek yapılandırılabilir bir bütçe ise yönlendirici ile aynı ağ.
KIAaze

3

Ubuntu'da (Masaüstü) varsayılan olarak SSH kurulu değildir.

Terminal'de aşağıdaki komutu kullanarak yükleyebilirsiniz:

sudo apt-get install openssh-server

Hizmeti kurup hemen başlatması gerekir.


2
+1. Ben denedim bu harika çalıştı. Bu komutu çalıştırdıktan hemen sonra ( Ubuntu 14.04 (Trusty Tahr), 64-bit Desktop baskısı için) Ubuntu makinesine ssh yapmayı başardım.
Peter Mortensen
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.