Qual è il modo migliore di SSH per le macchine sulla rete locale?


61

Ho 2 computer, uno che uso e uno per i bambini. Voglio essere in grado di ssh nel loro computer per controllarlo (come spegnerlo, ecc.), Ma sono curioso il modo migliore per farlo. Siamo entrambi nella stessa casa e condividiamo la stessa connessione Internet.

Quale sarebbe il modo migliore per farlo? Dalla ricerca, ho letto per installare openssh-server sul computer remoto ma sono sconcertato su cosa usare per il nome host quando provo a connettermi. Di solito per VPS è l'IP esterno ma poiché entrambi condividiamo una connessione wifi sarebbe l'IP hardware? Dovremmo interfacciarci direttamente tramite LAN o attraverso Internet?

Risposte:


58

Correre:

avahi-browse -tl _workstation._tcp

Per ottenere un elenco di workstation Ubuntu nella rete locale, è possibile connettersi ad esse eseguendo:

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

7
Nota: per avahi-browse, è necessario installare il avahi-utilspacchetto (che verrà anche richiamato avahi-daemon, il servizio che fornisce l'indirizzabilità .local).
Piskvor,

2
@Piskvor Ottimo punto. Questo pacchetto è già installato di default in Ubuntu Desktop, ma non conosco altre versioni (kubuntu, lubuntu, ecc.). Se non è installato, esegui sudo apt-get install avahi-utils.
Eric Carvalho,

quindi sarebbe necessario configurare un server ssh o ad esempio ubuntu 14.04 ne esegue uno di default?
tobi,

1
Il server SSH @tobi non è installato per impostazione predefinita. Devi installarlo.
Eric Carvalho,

2
l'elenco sembra vuoto dopo l'esecuzione avahi. Entrambi i computer sono collegati allo stesso router
Jose Ospina,

15

Puoi usare l'indirizzo IP per accedere al computer del bambino. Se si desidera utilizzare il nome del computer, modificare il file / etc / hosts per includere il nome del computer.

192.168.1.104  dad
192.168.1.105  kids

12
È necessario sottolineare che gli IP devono essere assegnati staticamente ai computer.
Alaa Ali,

3
È possibile abilitare l' sshing per nome senza modificare il file hosts nominando gli host in ~/.ssh/config: howtogeek.com/75007/…
Nathan Long

@NathanLong - Bel consiglio! sebbene si possa sostenere di averlo nel file hosts, si accede a qualsiasi servizio (se lo si desidera).
stefgosselin,

9

Prima di eseguire ssh, verificare la presenza di client e server ssh. Se non hai questi servizi installati

 sudo apt-get install openssh-client

 sudo apt-get install openssh-server

Se lo hai già fatto

 ssh username@ipaddress

 Enter connecting device login password.

Esempio :

 ssh prem@192.168.1.145

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

Se hai riscontrato errori come: "Autorizzazione negata, riprova."

Si prega di controllare due volte per nome utente e ip.


8

Uso il file ~ / .ssh / config che ssh analizza automaticamente, ecco un esempio:

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

Si noti che è possibile utilizzare qualsiasi variabile (lato client) in questo file e impostarla a livello globale o per server.


Quindi come si configura la funzione DNS di un'appliance gateway Internet domestica da associare server1-web.example.orge server2-db.example.orgcon i rispettivi server?
Damian Yerrick,

5
  1. È possibile utilizzare ssh direttamente su un IP locale, ad esempio se la LAN utilizza IP statici
    ssh someuser@192.168.1.2

  2. È possibile modificare il file hosts in entrambi i computer, come indicato da Ed Manet nella sua risposta . In questo modo puoi ssh usando il nome host del computer, cioèssh someuser@some_hostname

  3. È possibile configurare un server DNS locale per risolvere gli host della LAN. In questo modo sarai in grado di usare ssh usando il nome host del computer come nell'opzione 2 ma con il vantaggio aggiuntivo di evitare la modifica di ogni file host, indirizzando il tuo server DNS nelle impostazioni di rete di Ubuntu.

DNSMasq è un buon server DNS facile da configurare.
Un'altra opzione è BIND .


3

Utilizzare l'indirizzo IP LAN locale. L'approccio alternativo richiede che alcune porte siano aperte su Internet, per consentire l'accesso.

Inoltre, è necessario il mapping delle porte (sul router). L'uso dell'indirizzo IP "pubblico" (sul router) come destinazione non si collegherà a nessuno dei due PC.


Il modo più semplice è assegnare in modo permanente ciascun indirizzo IP (per i tuoi 2 computer) sul router. Quindi connettiti semplicemente a quell'indirizzo IP.

Se vuoi essere intelligente (in seguito), imposta un server e inizia a utilizzare un servizio DNS locale per assegnare nomi significativi a ciascun dispositivo. Non vale davvero la pena per solo 2 PC.


1
Nota: al giorno d'oggi molti router domestici decenti leggeranno i nomi host delle workstation durante l'assegnazione dell'indirizzo IP e lo risolveranno per il DNS locale. Purtroppo, questa non è ancora una funzionalità universale.
Piskvor,

2

Se condividi la stessa connessione Internet, molto probabilmente sei dietro lo stesso router wifi. Quindi ti connetti direttamente al tuo computer per bambini:

ssh <IP-address>

o:

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

Ovviamente funziona meglio se il computer dei bambini ha un indirizzo IP statico. Altrimenti devi sempre controllare qual è l'IP. La maggior parte dei router ha un'opzione per assegnare un IP statico (sempre lo stesso) ai dispositivi scelti. Alcuni router hanno anche un'opzione per assegnare il nome host a un determinato dispositivo - quindi per qualsiasi dispositivo con lo stesso indirizzo di rete "bambini" significherebbe lo stesso. Se si assegnano i nomi host con il file / etc / hosts, il nome host è noto solo a quel computer in cui si trova quel file host. Anche questo presuppone che il computer per bambini abbia un indirizzo IP statico.

È possibile impostare un IP statico sul computer per bambini anche su quella macchina, ma consiglio l'installazione in cui vengono eseguite le impostazioni di rete nel router. Un punto di controllo: più facile da gestire. Se qualcosa non è chiaro, lascia un commento e amplierò la mia risposta.


Ho provato il tuo suggerimento, ma ho ssh: connect to host xxx.xxx.x.xx port 22: connection refusedriscontrato un errore: - è necessaria una configurazione aggiuntiva?
lukaszkups,

Ci deve essere un server SSH in esecuzione su quella macchina e nessun firewall lo blocca e così via. È possibile che ssh sia stato configurato per prevedere connessioni su qualche altra porta, nel qual caso è possibile che l'utente -p flag usi qualcos'altro rispetto alla porta predefinita (22).
Tanel Mae,

0

È possibile utilizzare l'indirizzo IP al posto di un nome host o assegnare un nome host personalizzato nel /etc/hostsfile.

Per ottenere l'IP sul computer del bambino: nel menu di rete vedere "Informazioni sulla connessione" o eseguire ifconfigdalla riga di comando (questi devono essere fatti sul computer del bambino).

Il tuo router wifi assegna questi indirizzi IP e dovresti essere in grado di configurarlo per mantenere gli indirizzi IP specifici per i computer a cui sono attualmente assegnati. (In caso contrario, gli IP possono cambiare di volta in volta).


0

Puoi semplicemente assegnare il nome di calcolo alla macchina di tuo figlio.
Quindi semplicemente,
ssh MachineName

Non l'ho mai usato, solo un pensiero nella mia testa che ho condiviso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.