Το SSH (Secure SHell) και το SFTP (Secure File Transfer Protocol) είναι κάποια βασικά εργαλεία που χρησιμοποιούμε για να συνδεθούμε σε ένα απομακρυσμένο σύστημα, υπολογιστή ή virtual machine (VM), ώστε να κάνουμε οποιαδήποτε εργασία ή να μεταφέρουμε αρχεία από και προς το τοπικό μας μηχάνημα.
Παρακάτω θα δουμε πως μπορούμε να τα χρησιμοποιήσουμε και να “λύσουμε” τα χέρια μας όσον αφορά την απομακρυσμένη σύνδεση.

ΠΕΡΙΕΧΟΜΕΝΑ

 

ΕΝΟΤΗΤΑ 1: SSH

ΤΙ ΕΙΝΑΙ ΤΟ SSH;

Το SSH (Secure SHell) είναι ένα ασφαλές δικτυακό πρωτόκολλο που επιτρέπει τη σύνδεση μεταξύ δύο υπολογιστών. Κρυπτογραφεί τα δεδομένα που ανταλλάσσονται κατά τη σύνδεση, και προσφέρει ασφαλή μεταφορά αρχείων μέσω SFTP.

Η πιο γνωστή περίπτωση χρήσης του SSH είναι η απομακρυσμένη σύνδεση σε υπολογιστικά συστήματα ή εικονικές μηχανές (Virtual Machines). Χρησιμοποιείται λοιπόν για σύνδεση με servers, για απομακρυσμένη εργασία, system administration, και στην περίπτωση μας, για σύνδεση στον ακαδημαϊκό μας λογαριασμό από το σπίτι.

 

ΠΩΣ ΣΥΝΔΕΟΜΑΙ ΣΕ ΕΝΑ ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΜΗΧΑΝΗΜΑ Η VIRTUAL MACHINE;

Από Windows, θα πρέπει να χρησιμοποιήσετε το PuTTy. Από Linux/Mac, ανοίγουμε τερματικό και γράφουμε:

ssh <όνομα χρήστη>@<απομακρυσμένο-host>

Θα ζητηθεί να δώσετε τον κωδικό του χρήστη στο απομακρυσμένο μηχάνημα.

Για παράδειγμα, στην παρακάτω εικόνα συνδεόμαστε με ένα Raspberry Pi:

Αφού βάλουμε τον κωδικό και πατήσουμε Enter, αν δεν έχουμε κάνει λάθος είμαστε συνδεδεμένοι στο απομακρυσμένο μηχάνημα. Μπορούμε, μέσω του τερματικού, να χρησιμοποιήσουμε κανονικά το σύστημα χωρίς περιορισμούς.

 

ΠΩΣ ΣΥΝΔΕΟΜΑΙ ΣΕ ΜΗΧΑΝΗΜΑ ΤΗΣ ΣΧΟΛΗΣ;

Με τον ίδιο τρόπο συνδεόμαστε στο λογαριασμό μας στη σχολή. To host name των μηχανημάτων της σχολής είναι scylla.cs.uoi.gr.

ssh cseXYYYY@scylla.cs.uoi.gr

όπου Χ είναι το τελευταίο ψηφίο του έτους εισαγωγής, και ΥΥΥΥ ο τετραψήφιος αριθμός μητρώου.

Αν είστε στον κύκλο Πληροφορικής, αντίστοιχα:

ssh csXXYYYY@scylla.cs.uoi.gr

όπου ΧΧ τα 2 τελευταία ψηφία του έτους εισαγωγής.

Παράδειγμα, ένας φοιτητής που εισήχθη στη σχολή το 2013 και έχει αριθμό μητρώου 1111, χρησιμοποιεί μία από της παρακάτω εντολές, ανάλογα με τον κύκλο σπουδών του:

# Μηχανικών Η/Υ και Πληροφορικής
ssh cse31111@scylla.cs.uoi.gr
# Πληροφορικής
ssh cs131111@scylla.cs.uoi.gr

Τώρα θα πρέπει να διαλέξουμε μηχάνημα. Τα μηχανήματα opti7020ws08 εώς opti7020ws13 είναι πάντα ανοιχτά και διαθέσιμα για τον σκοπό μας:

ssh opti7020wsXX
# XX -> 08-13

Μπορούμε, αν θέλουμε, να δούμε όλα τα διαθέσιμα μηχανήματα με την εντολή:

ruptime

Εναλλακτικά, μπορούμε να συνδεθούμε στο λογαριασμό και να διαλέξουμε μηχάνημα με μία μόνο εντολή, ως εξής:

ssh cseXYYYY@scylla.cs.uoi.gr -t 'ssh opti7020ws02'

Θα μας απαντήσει πως “The authenticity of host ‘opti7020wsXX can’t be established”. Γράφουμε “yes” για να πιστοποιήσουμε πως είμαστε σίγουροι ότι θέλουμε να συνεχίσουμε τη σύνδεση.

Θα χρειαστεί να βάλουμε άλλη μια φορά τον κωδικό μας. Αφού πατήσουμε Enter αν όλα έγιναν σωστά, είμαστε πλέον συνδεδεμένοι στον ακαδημαϊκό λογαριασμό μας, σε μηχάνημα της σχολής.

Τώρα μπορούμε να χρησιμοποιήσουμε κανονικά το τερματικό σαν να βρισκόμαστε στη σχολή. Μπορούμε να μεταφέρουμε αρχεία, να δούμε περιεχόμενα φακέλων, ακόμα και να τελειώσουμε κάποια εργασία ή εργαστήριο τροποποιώντας αρχεία. Στο παράδειγμα ο text editor είναι το Vim.

 

ΠΩΣ ΒΓΑΙΝΩ ΑΠΟ ΤΗΝ ΑΠΟΜΑΚΡΥΣΜΕΝΗ ΣΥΝΕΔΡΙΑ;

Για να αποσυνδεθούμε, γράφουμε απλά:

exit

ΕΝΟΤΗΤΑ 2: SFTP

ΤΙ ΕΙΝΑΙ TO SFTP;

Το SFTP (Secure File Transfer Protocol) είνα μια επέκταση του SSH, η οποία επιτρέπει την ασφαλή μεταφορά αρχείων αλλά και τη χρήση τους, κάτι που την κάνει να μοιάζει με πρωτόκολλο συστήματος αρχείων. Επιτρέπει τη συνέχεια μεταφορών που διακόπηκαν, διάφορες εντολές μετακίνησης και παρουσίασης των φακέλων και των αρχείων τους, καθώς και τη διαγραφή τους.

 

ΠΩΣ ΣΥΝΔΕΟΜΑΙ ΣΕ ΕΝΑ ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΜΗΧΑΝΗΜΑ ΜΕ SFTP;

Η σύνδεση είναι παρόμοια με του SSH. Σε ένα τερματικό γράφουμε:

sftp <όνομα-χρήστη>@<απομακρυσμένο-host>

 

Για παράδειγμα, για να συνδεθούμε στον ακαδημαϊκό μας λογαριασμό:

sftp cseXYYYY@scylla.cs.uoi.gr
# ή
sftp csXXYYYY@scylla.cs.uoi.gr

Θα εμφανιστεί ένα prompt:

Η χρήση του είναι λίγο πιο πολύπλοκη από ότι του SSH, καθώς θα πρέπει να έχουμε υπόψιν μας, εκτός από το φάκελο που βρισκόμαστε στο απομακρυσμένο μηχάνημα, και τη θέση μας στο τοπικό μηχάνημα. Μπορούμε πάντα να δούμε πληροφορίες για το SFTP και τις εντολές που μας παρέχει με την εντολή:

help

 

Θα δούμε αμέσως περισσότερα για τη χρήση του.

 

ΠΩΣ ΜΕΤΑΚΙΝΟΥΜΑΙ ΜΕΤΑΞΥ ΦΑΚΕΛΩΝ ΤΟΠΙΚΟΥ/ΑΠΟΜΑΚΡΥΣΜΕΝΟΥ ΣΥΣΤΗΜΑΤΟΣ;

Ας το πάρουμε βήμα-βήμα.

Αρχικά, ας δούμε που βρισκόμαστε:

pwd # print working directory

Ωραία. Τι υπάρχει εδώ;

ls # list

ΟΚ. Τώρα ξέρουμε που είμαστε και τι υπάρχει στο απομακρυσμένο σύστημα, αλλά που βρισκόμαστε στο τοπικό σύστημα;

lpwd # local print working directory
lls  # local list

Πως μετακινούμαστε μεταξύ φακέλων;

cd path/to/dir  # change directory (remote)
lcd path/to/dir # local change directory

ΠΩΣ ΜΕΤΑΦΕΡΩ ΑΡΧΕΙΑ;

 

1. ΑΠΟ ΤΟΠΙΚΟ ΠΡΟΣ ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΣΥΣΤΗΜΑ

Θα χρησιμοποιήσουμε την εντολή put:

put localfile # μεταφέρει το αρχείο με όνομα localfile από τον τρέχοντα τοπικό κατάλογο στον τρέχοντα απομακρυσμένο κατάλογο

Αν θέλουμε να μεταφέρουμε ολόκληρο φάκελο, μπορούμε να χρησιμοποιήσουμε το όρισμα -r (recursive) στην εντολή put:

put -r localdir # μεταφέρει ολόκληρο τον φάκελο localdir από το τοπικό στο απομακρυσμένο σύστημα

Σημείωση: Σε κάποιες εκδόσεις μπορεί να χρειαστεί να δημιουργήσετε τον φάκελο στο απομακρυσμένο σύστημα πριν κάνετε τη μεταφορά. Στην περίπτωση αυτή χρησιμοποιήστε την εντολή mkdir:

mkdir localdir # make directory localdir

2. ΑΠΟ ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΠΡΟΣ ΤΟΠΙΚΟ ΣΥΣΤΗΜΑ

Αντίστοιχα, θα χρησιμοποιήσουμε την εντολή get:

get remotefile # αντιγράφει το αρχείο με όνομα remotefile στον τρέχοντα τοπικό κατάλογο, και κρατάει το ίδιο όνομα αρχείου
get remotefile localfile # το ίδιο με πάνω, αλλά ονομάζει το τοπικό αρχείο localfile

Για ολόκληρο φάκελο:

get -r remotedir # μεταφέρει τον κατάλογο remotedir από το απομακρυσμένο στο τοπικό σύστημα
get -Pr remotedir # ίδιο με πάνω αλλά οι άδειες χρηστών και οι χρόνοι προσπέλασης μένουν ίδιοι

Για να κλείσω την απομακρυσμένη συνεδρία:

exit
# ή
quit
# ή
bye

ΣΥΝΟΨΗ

Σε αυτό το άρθρο είδαμε τι είναι το SSH και το SFTP, μάθαμε πως να τα χρησιμοποιούμε, και πως να συνδεόμαστε στο λογαριασμό μας στη σχολή απ’ το σπίτι.

Αυτό το άρθρο γράφτηκε στα πλαίσια του σεμιναρίου “Απομακρυσμένη Σύνδεση(SSH/SFTP)” που διοργανώνει η IEEE University of Ioannina Student Branch, την Τρίτη 14 Νοεμβρίου και ώρα 1μ.μ. στην αίθουσα σεμιναρίων του Τμήματος Μηχανικών Η/Υ και Πληροφορικής. Θα χρησιμοποιηθεί επίσης σαν βοηθητικό υλικό για επερχόμενα άρθρα όπου θα δούμε πως να στήσουμε έναν Apache web server και μια ιστοσελίδα με δωρεάν hosting σε ακαδημαϊκή υπηρεσία.