Το [[http://en.wikipedia.org/wiki/Secure_Shell|SSH (Secure Shell)]] είναι ένα πρωτόκολλο σύνδεσης δικτύων (network protocol) που επιτρέπει την ασφαλή σύνδεση ενος υπολογιστή Α με έναν "απομακρυσμένο" υπολογιστή Β είτε μέσω γραφικού περιβάλλοντος, είτε μέσω γραμμής εντολών. Με το πρωτόκολλο αυτό μπορούμε να διαχειριστούμε πλήρως τον "απομακρυσμένο" υπολογιστή Β. Παρακάτω, θα δούμε τρόπους με τους οποίους μπορούμε να αξιοποιήσουμε αυτή τη λειτουργία σε μια διανομή linux (Ubuntu). =====Το Πρόβλημα===== **Πρόβλημα 1**: Έχετε 2 υπολογιστές συνδεδεμένους στο ίδιο router μέσα στο σπίτι σας και θέλετε να μεταφέρετε ένα αρχείο από τον Α στον Β. **Πρόβλημα 2**: Έχετε 1 υπολογιστή στο χωριό σας με τις φωτογραφίες από τις διακοπές σας και 1 υπολογιστή στο σπίτι σας και θέλετε να δείξετε τις φωτογραφίες στους φίλους σας. **Πρόβλημα * **: Έχετε 2 υπολογιστές και θέλετε από τον Α να μπείτε και να διαχειριστείτε τα αρχεία του Β. =====Η Λύση (Για σύνδεση απο Α->Β)===== **0**. Εγκαταστήστε **ΚΑΙ ΣΤΟΥΣ 2 Η/Υ** από το Software Center (Applications -> Software Center) το πρόγραμμα 'secure shell client and server (metapackage)'. Είναι η πρώτη επιλογή όταν κάνετε search για "ssh". **1**. Εύρεση 'ip address' του Β. **1a**. __Περίπτωση μέσω τοπικού δικτύου (δλδ. υπολογιστές συνδεδεμένοι στο ίδιο router)__. Μάθετε την 'ip address' του υπολογιστή στον οποίο συνδέεστε (δλδ. του Β). Αυτό γίνεται απλά πηγαίνοντας **από τον υπολογιστή B** στην γραμμή εντολών (Applications -> Accessories -> Terminal) και γράφοντας: ifconfig -a Από το σεντόνι που θα σας τυπώσει στην οθόνη σας ενδιαφέρει μόνο η δεύτερη γραμμή και συγκεκριμένα το **inet addr**. Έστω για το συγκεκριμένο παράδειγμα ότι inet addr:192.168.1.4 **1b**. __Περίπτωση μέσω internet (δλδ. υπολογιστές μη συνδεδεμένοι στο ίδιο router__). Στην συνήθη περίπτωση που έχετε δυναμική (μεταβλητή) 'ip address' το router δείχνει στο διαδίκτυο διαφορετική 'ip address' κάθε φόρα. Οπότε, μαθαίνετε την 'ip address' του Β από κάποιο site (google: what is my ip) ή γίνεστε μέλος σε κάποιο [[http://www.no-ip.com/|site]] που μπορείτε να βλέπετε ανα πάσα στιγμή τις 'ip adresses' των υπολογιστών που σας ενδιαφέρουν από οπουδήποτε. **2**. Από τον υπολογιστή Α πηγαίνετε Places -> Connect to Server. **3**. Στο παραθυράκι που ανοίγει επιλέξτε: * Server Type: SSH * Server: 192.168.1.4 (αν είστε σε τοπικό δίκτυο) ή την internet 'ip address' του router (αν συνδέεστε μέσω internet) * Port: 22 * Folder: το folder path στο οποίο θέλετε να συνδεθείτε. πχ. /home ή /home/username/Pictures ή ακόμα /media (για εξωτερικούς σκληρούς και usb sticks που έχετε συνδεδεμένα στον υπολογιστή Β) * Username: το username του χρήστη στον φάκελο του οποίου θέλετε να δυνδεθείτε. Δηλαδή το username σας στο pc B. * Κάντε τικ στο 'add bookmark' * Bookmark name: Δώστε ένα χαρακτηριστικό όνομα στην σύνδεση. (Πχ. αν συνδέεστε στο /home/Pictures του υπολογιστή B δώστε "Pictures at B" ή κάτι τέτοιο) Πατήστε **connect**. Την πρώτη φορά θα σας ειδοποιήσει ότι συνδέεστε σε άγνωστο υπολογιστή. Επιλέξτε 'Log in anyway'. Τέλος, θα σας ζητήσει τον κωδικό του χρήστη (δλδ. τον κωδικό σας στον υπολογιστή Β). Τον βάζετε και έχετε συνδεθεί. =====Ασφαλέστερη Σύνδεση===== Αν θέλετε μπορείτε να αλλάξετε το [[http://en.wikipedia.org/wiki/Computer_port_%28software%29|port]] μέσω του οποίου πραγματοποιείται η σύνδεση (Port: 22) για μεγαλύτερη ασφάλεια. Αυτό γίνεται ως εξής: **0**. Από την γραμμή εντολών (Applications -> Accessories -> Terminal) κατευθυνόμαστε στο αρχείο εντολών του SSH γράφωντας: sudo gedit /etc/ssh/sshd_config Στην τέταρτη γραμμή βρίσκουμε: **Port 22**, το οποίο αλλάζουμε σε αυτό που επιθυμούμε (π.χ. 2222). **1**. Κάνουμε το συγκεκριμένο port [[http://en.wikipedia.org/wiki/Port_forwarding|Port Forward]] στο router. **Σημείωση**: Αν είναι ενεργοποιημένο to firewall στο Ubuntu (default δυστυχώς δεν είναι) θα πρέπει να γίνει επιτρεπτή η πρόσβαση στο επιθυμητό port (π.χ. 2222). Ένας απλός και εύχρηστος διαχειριστής του firewall είναι ο **Firestarter**. **2**. Εγκαθιστούμε από το synaptic (System -> Administration -> Synaptic Package Manager) το Firestarter. **3**. Ανοίγουμε το Firestarter (System -> Administration -> Firestarter) πηγαίνουμε στο 'tab' **Policy** (Editing = Inbound trafic Policy) και στο παράθυρο **Allow service** κάνουμε προσθήκη το Port που θέλουμε. Συγκεκριμένα: * Name: <Ότι θέλουμε> * Port: <Το επιθυμητό Port> (π.χ. 2222) * When the source is: Anyone * Comment: - Είσαστε έτοιμοι και ασφαλέστεροι!!! =====Σύνδεση μέσω γραμμής εντολών===== Για να συνδεθείτε από το τερματικό αφού το ανοίξετε πληκτρολογείτε: ssh username@ip-address -p port όπου: * username: το username που έχετε στο pc που θέλετε να συνδεθείτε * ip-address: την 'ip address' του υπολογιστή που θέλετε να συνδεθείτε * port: το port που έχετε ρυθμίσει (Αν έχετε το default 22 τότε παραλείψτε αυτήν την εντολή) Και έχετε συνδεθεί στο home σας του "απομακρυσμένου" pc!!!