Connessioni multiple SSH allo stesso sistema: è possibile?


14

Ho un computer Linux che funge da server in grado di accettare connessioni SSH in arrivo.

È possibile collegare in modo affidabile più dispositivi contemporaneamente, come telefono e laptop, nonché altri desktop, allo stesso server tramite SSH?

Grazie per l'aiuto.


63
Perché non hai provato prima di chiedere?
Dmitry Grigoryev il

1
Non solo, ma puoi avere più collegamenti tra la stessa coppia di sistemi. È inoltre possibile trovare utile screeno moshutile se si desidera il comportamento "Desktop remoto di Windows" per la riga di comando: un'unica interfaccia passata su più collegamenti.
pjc50,

7
Ci sono 2 motivi per cui non ho semplicemente provato prima di chiedere; il primo è la mancanza di fiducia nella mia comprensione di Linux - se avesse funzionato non mi sarei ancora fidato della sua affidabilità se avessi fatto affidamento su di esso. Il secondo è che la community di Superuser è, in generale, fantastica e veloce per aiutare chi lo chiede - grazie della community.
Sam3000,

Risposte:


50

La risposta breve - Sì. Di solito funziona di default.

La risposta lunga - A seconda del motivo per cui lo stai usando, potrebbe rallentare con più connessioni, ma questo è un problema di larghezza di banda, non un problema ssh.


15

Sì, è possibile, è il comportamento predefinito.

Fiducia

Puoi fare affidamento se stai utilizzando una versione aggiornata di sshe il protocollo non è più 1.

grep "Protocol"  /etc/ssh/sshd_config

Il comando sopra dovrebbe darti Protocol 2.

Limiti per le connessioni

Puoi vedere sshl'evoluzione criptata di telnet, nata nel lontano '69 per consentire l'accesso remoto a un server. Si noti che si sshconnette tramite TCP ed è in grado di inoltrare anche sessioni X (sessione grafica). Il multitasking e il multiutente sono nella natura interiore di Unix ... anche se non è senza limiti !!!

Puoi vedere alcuni di questi limiti nei limiti TCP e SSH:

  • cat /proc/sys/net/core/somaxconn, di solito 128, per vedere la massima connessione TCP in sospeso che puoi avere;

    La variabile kern.ipc.somaxconn sysctl (8) limita la dimensione della coda di ascolto per accettare nuove connessioni TCP. Il valore predefinito di 128 è in genere troppo basso per una gestione efficace delle nuove connessioni su un server Web pesantemente caricato.

  • cat /proc/sys/net/core/netdev_max_backlog, in genere 1000, la lunghezza massima della coda dei pacchetti TCP
  • less /etc/security/limits.conf puoi trovare i limiti per l'utente.
  • MaxSessions in/etc/ssh/sshd_config

    MaxSessions Specifica il numero massimo di sessioni aperte consentite per connessione di rete. L'impostazione predefinita è 10 .

  • #MaxStartups 10:30:60di solito commentato in /etc/ssh/sshd_confige di default impostato su 10

    Specifica il numero massimo di connessioni non autenticate simultanee al demone SSH ... L'impostazione predefinita è 10.


Riferimenti

  • man ssh, man sshdsulla tua macchina.
  • La pagina man di sshd o di sshd_config .

2
somaxconnè il numero massimo di connessioni in sospeso , ovvero il massimo backlog di ascolto, non il "numero massimo di connessioni TCP che è possibile avere". Il numero massimo di connessioni TCP che puoi avere è ordini di grandezza superiori a 128. Altrimenti i server pratici non sarebbero possibili.
user207421

@ejp grazie per lo spot, ero di fretta e mi manca "nuovo" prima della connessione. A proposito "eccezionale" è più preciso. Ho aggiunto qualche parola in più nella speranza che sia più chiaro.
Hastur,

MaxSessionslimita solo il numero di sessioni multiplate su una singola connessione TCP ( maggiori dettagli ), quindi non ti limita a riconnetterti allo stesso host. (Un limite predefinito di 10 per le sessioni SSH totali sarebbe assurdo. Immagina un webhost condiviso con centinaia o migliaia di account utente e solo 10 sessioni SSH consentite.)
Josef dice Reinstate Monica

@Josef È scritto MaxSessions Specifica il numero massimo di sessioni aperte consentite per connessione di rete , niente di diverso (come riportato nella pagina man): forse non abbastanza chiaro. Grazie per il riferimento aggiuntivo e per sottolineare questo punto. (Nota: a proposito l'uso comune di un computer Linux con ssh non è un host web condiviso con 10 ^ 5 + account utenti, e in tal caso l' impostazione predefinita non può essere appropriata per definizione :-))
Hastur

6

Sì, lo è totalmente. Ma questo dovrebbe essere definito dall'implementazione. Potresti anche programmare il tuo server ssh (probabilmente non così sicuro e peggio) che non è in grado di gestire connessioni multiple. Ma proprio come i comuni server HTTP supportano ovviamente questo, anche openssh lo fa.

In realtà questo è il concetto stesso di Unix: un sistema multiutente in cui un server fa tutto il lavoro e solo i piccoli client si connettono (terminali).


4

Sì, questo è molto comune. Infatti se usato come file server e da molti utenti è assolutamente essenziale. SFTP utilizza SSH e anche molte attività EDI dipendono da essa.

Dai dispositivi è possibile attivare eventi con accessi utente personalizzati (come spegnimento o riavvio).

Considera anche SCP (WinSCP è comunemente usato per accedere al codice sorgente) e gli utenti di KDE sono ancora in grado di usare fish: in Konqueror.

Notevole anche l'uso di porte aggiuntive in caso di perdita durante la manutenzione (ad esempio Ubuntu do-release-upgrade).

Quindi sì, ho capito che non hai mai avuto più terminali PuTTY aperti?


Non abbastanza stranamente non l'ho fatto! Ma grazie per le informazioni extra, cosa intendevi per porte aggiuntive per la manutenzione?
Sam3000,

1
Durante do-relesase-upgrade da un terminale remoto, c'è il rischio che le comunicazioni vengano perse (ad esempio riavvio di SSH o della rete). Se questi non possono essere ristabiliti sulla porta 22 Ubuntu fornisce una porta alternativa 1022 usando una seconda istanza SSH. L'aggiornamento avviene all'interno di "screen" a cui è possibile accedere con screen -x / screen -r dopo la riconnessione e un sudo su. (guarda in "schermo" e "tmux"). Un sacco di informazioni su questo.
mckenzm,
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.