Yerel ağdaki makinelere SSH'nin en iyi yolu nedir?


61

Biri kullandığım ve biri çocuklar için kullandığım 2 bilgisayarım var. Bilgisayarlarını kontrol etmek için ssh ile yapabilmek istiyorum (kapatmak gibi bir şey) ama bunu yapmanın en iyi yolunu merak ediyorum. İkimiz de aynı evdeyiz ve aynı internet bağlantısını paylaşıyoruz.

Bunu yapmanın en iyi yolu ne olurdu? Araştırmadan uzaktaki bilgisayara openssh-server'ı kurmayı okudum, ancak bağlanmaya çalışırken hostname için ne kullanılacağıma güvendim. Genellikle VPS'ler için harici IP'dir, ancak ikimiz de bir wifi bağlantısını paylaştığımız için donanım IP'si olurdu? Doğrudan LAN ile mi yoksa internetten mi geçmeli?

Yanıtlar:


58

Çalıştırmak:

avahi-browse -tl _workstation._tcp

Yerel ağdaki Ubuntu iş istasyonlarının bir listesini almak için aşağıdakileri çalıştırarak bağlanabilirsiniz:

ssh <username>@<computer-name>.local

7
Not: çünkü paketi avahi-browseyüklemelisiniz avahi-utils( avahi-daemon.local adreslenebilirliğini sağlayan servisi de dahil edecek ).
Piskvor

2
@Piskvor İyi nokta. Bu paket zaten önceden Ubuntu Desktop'ta kuruludur, fakat diğer tatları (kubuntu, lubuntu, vb.) Bilmiyorum. Yüklü değilse, sadece çalıştırın sudo apt-get install avahi-utils.
Eric Carvalho

Bu yüzden bir ssh sunucusu kurmak gerekli midir, yoksa ubuntu 14.04 varsayılan olarak bir tane çalıştırıyor mu?
tobi,

1
@ tobi SSH sunucusu varsayılan olarak yüklenmemiş. Yüklemelisin.
Eric Carvalho

2
Çalıştırdıktan sonra liste boş görünüyor avahi. Her iki bilgisayar da aynı yönlendiriciye bağlandı
Jose Ospina

15

IP adresini çocuğun bilgisayarına girmek için kullanabilirsiniz. Bilgisayar adını kullanmak istiyorsanız, bilgisayar adını eklemek için / etc / hosts dosyanızı düzenleyin.

192.168.1.104  dad
192.168.1.105  kids

12
IP'lerin bilgisayarlara statik olarak atanmaları gerektiğini belirtmeniz gerekir.
Alaa Ali,

3
Etkinleştirebilir sshevsahibi adlandırarak hosts dosyasını düzenlemeden adıyla ing ~/.ssh/config: howtogeek.com/75007/...
Nathan Long

@NathanLong - Güzel ipucu! Biri bunun ana bilgisayar dosyasında olması bir servisin herhangi bir hizmete erişmesini sağlar (eğer istenirse).
stefgosselin

9

Ssh yapmadan önce, ssh istemcisini ve sunucusunu kontrol edin. Bu servis kurulumuna sahip değilseniz

 sudo apt-get install openssh-client

 sudo apt-get install openssh-server

Eğer zaten yaptıysanız

 ssh username@ipaddress

 Enter connecting device login password.

Örnek :

 ssh prem@192.168.1.145

 prem@192.168.1.145's password:********

Şunun gibi bir hata varsa: "İzin reddedildi, lütfen tekrar dene."

Lütfen Kullanıcı adı ve ip için iki kez kontrol edin.


8

Ssh'nin otomatik olarak ayrıştırdığı ~ / .ssh / config dosyasını kullanıyorum, işte örnek:

Host *
ControlMaster auto
ControlPath /tmp/%r@%h:%p

KeepAlive yes 
ServerAliveInterval 60
ServerAliveCountMax 10
ControlPersist 1h

Host server1
        User user1
        HostName server1-web.example.org

Host server2
        User user2
        HostName server2-db.example.org
        Compression yes
        IdentityFile /home/user/.ssh/different_key.pem

Bu dosyadaki herhangi bir (clientide) değişkeni kullanabileceğinizi ve genel ya da sunucu başına ayarlayabileceğinizi unutmayın.


O zaman nasıl bir ilişkilendirmek için bir ev Internet ağ geçidi cihazın DNS tesis yapılandırmak etmez server1-web.example.orgve server2-db.example.orgkendi sunucuları ile?
Damian Yerrick

5
  1. LAN'ınızın statik IP kullanması koşuluyla, doğrudan yerel bir IP'ye ssh yapabilirsiniz.
    ssh someuser@192.168.1.2

  2. Ed Manet'in cevabında belirtildiği gibi, ana bilgisayar dosyasını her iki bilgisayarda da düzenleyebilirsiniz . Böylece bilgisayarın ana bilgisayar adını kullanarak ssh yapabilirsiniz.ssh someuser@some_hostname

  3. Yerel ağınızın ana bilgisayarlarını çözmek için yerel bir DNS sunucusu kurabilirsiniz. Bu yolla, seçenek 2'deki gibi bilgisayarın ana bilgisayar adını kullanarak ssh kullanabileceksiniz, ancak ek olarak, DNS sunucunuzu Ubuntu'nun ağ ayarlarında işaretleyerek her ana bilgisayar dosyasını düzenlemekten kaçınacaksınız.

DNSMasq kurulumu oldukça iyi bir DNS sunucusu.
Başka bir seçenek BIND'dir .


3

Yerel LAN IP adresini kullanın. Alternatif yaklaşım, giriş yapmanızı sağlamak için bazı bağlantı noktalarının İnternete açık olmasını gerektirir.

Ayrıca, port eşleştirmeye ihtiyacınız olacak (yönlendiricide). Bir hedef olarak (router) ve belirttiğiniz 'kamu' IP adresinin kullanılması olacaktır değil senin iki PC'ler birine bağlayın.


En basit yol, yönlendiriciye her IP adresini (2 bilgisayarınız için) kalıcı olarak atamaktır. Sonra sadece bu IP adresine bağlanın.

Akıllıca (daha sonra) almak istiyorsanız, bir sunucu kurun ve her cihaza anlamlı adlar atamak için yerel bir DNS servisi kullanmaya başlayın. Gerçekten sadece 2 PC için sorun değil.


1
Not: Bugünlerde birçok iyi ev yönlendiricisi IP adres ataması sırasında iş istasyonlarının ana bilgisayar adlarını okuyacak ve yerel DNS için çözecektir. Ne yazık ki, bu henüz evrensel bir özellik değil.
Piskvor

2

Aynı internet bağlantısını paylaşıyorsanız, büyük olasılıkla aynı kablosuz yönlendiricinin arkasındasınız. Böylece doğrudan çocuklarınıza bağlanırsınız:

ssh <IP-address>

veya:

ssh <user-name>@<IP-address>

Açıkçası bu, çocukların bilgisayarında statik IP adresi varsa daha iyi çalışır. Aksi halde, IP'nin ne olduğunu her zaman kontrol etmeniz gerekir. Çoğu yönlendiricinin, seçilen aygıtlara statik (her zaman aynı) IP ataması seçeneği vardır. Bazı yönlendiriciler aynı zamanda belirli bir cihaza ana bilgisayar adı atama seçeneğine sahiptir - daha sonra aynı ağ adresindeki herhangi bir cihaz için "çocuklar" aynı anlama gelir. Ana bilgisayar adlarını / etc / hosts dosyasıyla atarsanız, ana bilgisayar adı yalnızca bu ana bilgisayar dosyasının bulunduğu bilgisayar tarafından bilinir. Ayrıca, çocukların bilgisayarında statik IP adresi olduğu varsayılmaktadır.

Statik IP'yi bilgisayardaki bilgisayara da bu makinede ayarlayabilirsiniz ancak yönlendiricideki ağ ayarlarının yapılmasını tavsiye ederim. Bir kontrol noktası - yönetimi daha kolay. Bir şey net değilse, bir yorum bırakın ve cevabımı genişleteceğim.


Önerinizi denedim, ancak bir hata ssh: connect to host xxx.xxx.x.xx port 22: connection refusedoluştu : - gerekli başka bir yapılandırma var mı?
lukaszkups

Bu makinede çalışan ssh sunucusunun olması ve güvenlik duvarının engellenmemesi gerekiyor. Ssh'nin başka bir limandaki bağlantıları bekleyeceği şekilde yapılandırılmış olabilir, bu durumda kullanıcının -p bayrağını varsayılan porttan (22) başka bir şey kullanması mümkündür.
Tanel Mae

0

IP adresini bir ana bilgisayar adı yerine kullanabilir veya /etc/hostsdosyanıza özel bir ana bilgisayar adı atayabilirsiniz .

Çocuğun bilgisayarındaki IP'yi almak için: ağ menüsünde "Bağlantı Bilgileri" konusuna bakın veyaifconfig komut satırında çalıştırın (bunlar çocuğun bilgisayarında yapılmalıdır).

Wifi yönlendiriciniz bu IP adreslerini atar ve mevcut atanmış olan bilgisayarlar için belirli IP adreslerini tutacak şekilde yapılandırabilmelisiniz. (Aksi takdirde IP'ler zaman zaman değişebilir).


0

Çocuğunuzun makinesine basitçe hesaplama adı verebilirsiniz.
O zaman sadece yap,
ssh MachineName

Bunu hiç kullanmadım, sadece kafamda paylaştığım bir düşünce vardı.

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.