Come ottenere più finestre fisiche per una sessione ssh?


3

Ho un desktop Ubuntu che ho visto dal mio macbook pro. Spesso mi ritrovo a dover disporre di più finestre fisiche che sono inserite nel desktop, forse per impostare il codice side-by-side o quant'altro. C'è un modo per raggiungere questo obiettivo senza dover ssh e digitare la mia password per ogni finestra fisica?

Non voglio usare ssh passphraseless. Non penso che lo schermo GNU sia quello che voglio qui (ovvero più terminali virtuali all'interno di un singolo terminale).


Per curiosità: perché sei contrario a "passphraseless ssh"? Che cosa realmente intende per "ssh passphraseless"?
Grawity

Oltre alle risposte di seguito, potresti voler esaminare ssh-agent. Questo ricorderà le tue password per un periodo di tempo configurabile e ti consentirà di accedere senza password sulle connessioni successive dopo un accesso iniziale con password.
Jim Stewart,

Risposte:


4

Sì, SSHv2 supporta più sessioni sulla stessa connessione. OpenSSH lo supporta sotto forma di "master multiplex".

  1. In ~/.ssh/config, imposta il modello di percorso socket:

    Host *
        ControlPath ~/.ssh/S.%l.%r@%h:%p
        ControlMaster auto
    
  2. Abilita connessioni multiplex:

    • Avviare manualmente una connessione principale aggiungendo l' -Mopzione (principale) a ssh.

      La combinazione ssh -fNMpotrebbe essere utile per rendere immediatamente il master in background.

      $ ssh -fNM <host>
      
    • Per farlo automaticamente (solo OpenSSH 5.6 e versioni successive), imposta ControlPersistin ~/.ssh/config:

      Host *
          ControlPersist 10m
      

      Con questa opzione, una connessione principale verrà avviata automaticamente e l' -Mopzione non è necessaria.

  3. Ulteriori connessioni possono essere aperte semplicemente eseguendo in nuove finestre del terminale. Funziona anche con , e qualsiasi altra cosa che usi SSH.ssh hostsftpscp

  4. Quando ControlPersistè in uso, la connessione principale verrà chiusa automaticamente quando non sarà più necessaria. (Nell'esempio sopra, 10msono dieci minuti.)

    Altrimenti, utilizzare per arrestare il master manualmente. Questo ucciderà tutte le connessioni a quell'host.ssh host -O exit

Per ulteriori informazioni, vedere ssh (1) (l' -Oopzione) e ssh_config (5) ( Control*opzioni).


Nota: durante la modifica .ssh/config, assicurarsi che le sezioni specifiche dell'host vengano visualizzate per prime, ed Host *è l' ultima sezione.


2

Probabilmente potresti farlo usando ssh -Y. Dalla pagina man di ssh:

 -Y      Enables trusted X11 forwarding.  Trusted X11 forwardings are not
         subjected to the X11 SECURITY extension controls.

Quindi, supponi di accedere alla macchina Ubuntu in questo modo:

$ ssh -Y user@ubuntu

Avrai quindi un prompt sul computer remoto. Invece di lavorare su quel prompt, avvia un emulatore di terminale, come gnome-terminal, xterm, aterm, terminator ecc ecc:

user@ubuntu $ gnome-terminal &

Questo aprirà quindi un'istanza di gnome-terminal che apparirà sullo schermo del tuo mac. Puoi lavorare lì e ogni volta che vuoi eseguire di gnome-terminal &nuovo un nuovo terminale .


Possibili problemi:

  1. A seconda della configurazione, potrebbe essere necessario consentire l'accesso alla sessione X (sul Mac) effettuando:

    user@mac $ xhosts +
    

    È quindi possibile annullare questo da:

    user@mac $ xhosts -
    
  2. Controllare il file di configurazione ssh della macchina Ubuntu ( /etc/ssh/sshd_config) per assicurarsi che questa riga sia presente e non commentata:

    X11Forwarding yes
    
  3. Penso che questo funzioni immediatamente su OS X. In caso contrario potresti dover eseguire una sessione X sul tuo Mac.


1
Potrebbe essere più facile da usare ssh -Y, che è meno limitato di -X. Inoltre, Mac OS X includeva un server X11 (X11.app), ma lo rilasciava da Mountain Lion: ora è un download separato .
Grawity,

+1 per -Y, buona idea @grawity. Per quanto riguarda X11, ho appena verificato con un mio amico, sul suo Mac ssh -X ha funzionato senza altre modifiche. Apparentemente il sistema di finestre di Mac è configurato per accettare ssh -X anche senza un server X in esecuzione.
terdon,

-Xfunziona ma abilita varie "funzionalità di sicurezza", che finora sono state solo fastidiose solo quando ci si collega al computer ... (ad esempio, le credenziali Xauth vengono revocate dopo 10 minuti con -X, ma rimangono valide per l'intera connessione con -Y; inoltre, l'accesso agli Appunti è disabilitato.)
Grawity

Risposta aggiornata di conseguenza @grawity. Preferisco la tua risposta però :)
Terdon

0

Un semplice approccio sarebbe quello di esportare un terminale dal tuo Ubuntu al tuo Mac.
allora tutto ciò che devi fare per un'altra finestra del terminale è qualcosa di simile xterm &.


Heh, mi hai battuto :)
Terdon

@terdon, solo sull'idea. Hai elaborato il punto :-)+1
nik,
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.