Uso di SSH per una sessione comandi

Chiameremo indifferentemente e con un piccolo abuso di terminologia sessione comandi, shell, prompt, terminale o anche terminale a caratteri, l'interfaccia che normalmente si vuole ottenere per poter dare dentro uno dei server ssh dei laboratori comandi come (ad esempio): ls, gcc, g++, cp

Nel dettaglio e più precisamente:

  • vi collegate in ssh (dal vostro computer al server, usando il programma apposito e molto spesso omonimo)
  • il vostro client emula un terminale a caratteri
  • il server riconosce il terminale a caratteri emulato e vi fornisce una shell (usualmente una istanza della bash)
  • la shell vi mostra il prompt principale (ad esempio nomeutente@dip191:~$ )
  • quando vedete il prompt principale potete dare i vostri comandi

Premessa all'esempio principale - completare la consegna dei compiti per casa

Se non altrimenti specificato dal docente, le consegne possono essere date o esclusivamente in Torre o esclusivamente al Paolotti.

Appunto in caso si voglia o debba operare da casa o dal laboratorio sbagliato (vacanze e lezioni che impediscono l'uso del laboratorio giusto), bisogna collegarsi in ssh ad un server che stia nel laboratorio giusto: elenco aggiornato.

Decidere se trasferire i file o scriverli nella sessione comandi

In generale ed in particolare nel caso di una consegna può capitare di dover lavorare o agire su dei dati che sono in locale (ovvero nel laboratorio sbagliato o addirittura sul computer di casa), quindi con file che i comandi eseguiti nel sessione comandi ottentuta via ssh normalmente non possono raggiungere.

Una scelta può essere fare taglia ed incolla da una finestra con i propri dati a quella del client ssh; un'altra trasferire preventivamente i file, ad esempio con il comando:

 scp -r -p directory5 nomeutente@ssh.studenti.math.unipd.it:directory5

Vedere a riguardo le istruzioni per il traferimento dei file.

Decidere se accontentarsi o meno di una sessione a caratteri

Una normale sessione comandi ottenuta via ssh non permette di usare programmi che facciano uso della interfaccia grafica (modello punta e clicca con mouse ed icone).

Potrete, ad esempio

  • usare pico
  • usare emacs con le sequenze di controllo ^X^S per salvare e ^X^C per uscire

    Non potrete, ad esempio

    • usare gedit oppure kate oppure altri editor grafici
    • usare emacs &

    Questo a meno di non attivare il tunnelling X11 e configurare il proprio computer per sfuttarlo.

    Esempio di consegna

    1. trasferite i file con il client ssh scelto dal vostro computer a ssh.studenti.math.unipd.it
    2. collegatevi con il client ssh scelto (può essere diverso dal precedente) per una sessione comandi dentro ssh.studenti.math.unipd.it
    3. spostatevi nella cartella destinazione per controllare i file traferiti: date quindi i comandi pwd; ls -l
    4. compilate i vostri sorgenti nella sessione comandi per controllare che tutto funzioni; magari eseguite pure il programma per testare si comporti a dovere
    5. se necessario lanciate emacs o un altro editor, comunque senza mettere in background il programma ovvero senza scrivere il carattere “&” dopo il comando (se avete sbagliato date il comando jobs seguito dal comando fg)
    6. salvate con la combinazione di tasti prevista
    7. con il comando pwd controllate di nuovo di essere nella cartella giusta
    8. date il comando consegna consegna5
    9. verificate che il comando di consegna abbia consegnato davvero i vostri file notando se l'output del comando stesso li ha appena elencati e se non sia stato superata la dimensione massima accettata dalle consegne
    10. con il comando ps auxf controllate di non aver lasciato programmi aperti che appesantiscano inutilmente il server ssh; se nececessario, uccidete tutti gli emacs rimasti vivi con il comando killall emacs
    11. terminate la sessione comandi con il comando logout
    12. chiudete il programma ssh del vostro computer solo dopo che la sessione comandi è terminata

    Ovviamente la vostra consegna potrebbe dover avvenire su un server diverso ed avere un altro nome ed ovviamente non tutti i passi elencati sono egualmente necessari o utili; tenere anche presente che i programmi che permettono l'apertura di una sessione comandi remota possono essere diversi da quelli per traferire i file.

    Aprire una sessione comandi remota

    • da Mac OS X o Linux 
       ssh nomeutente@ssh.studenti.math.unipd.it
    • da Windows usare PuTTY

    Dettagli: all'incirca gli stessi dettagli per usare scp dalla riga di comando locale.