Εγχειρίδια για τη γραμμή εντολών

Man » ssh Manual online - λεπτομερής διαδικτυακή τεκμηρίωση για τη σελίδα man ssh

🌍
ssh — Πελάτης απομακρυσμένης σύνδεσης OpenSSH

ΣΥΝΟΨΗ

ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
[-i identity_file] [-J destination] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd]
[-o option] [-P tag] [-p port] [-R address] [-S ctl_path] [-W host:port]
destination [command [argument ...]]
ssh [-Q query_option]

ΠΕΡΙΓΡΑΦΗ

Το ssh (πελάτης SSH) είναι ένα πρόγραμμα για σύνδεση σε μια απομακρυσμένη μηχανή και για εκτέλεση εντολών σε μια απομακρυσμένη μηχανή. Προορίζεται να παρέχει ασφαλείς, κρυπτογραφημένες επικοινωνίες μεταξύ δύο μη αξιόπιστων κεντρικών υπολογιστών σε ένα ανασφαλές δίκτυο. Οι συνδέσεις X11, οι αυθαίρετες θύρες TCP και οι θύρες τομέα Unix μπορούν επίσης να προωθηθούν μέσω του ασφαλούς καναλιού.

Το ssh συνδέεται και συνδέεται στην καθορισμένη προορισμό, η οποία μπορεί να καθοριστεί ως [user@]hostname ή μια URI της μορφής ssh://[user@]hostname[:port]. Ο χρήστης πρέπει να αποδείξει την ταυτότητά του στην απομακρυσμένη μηχανή χρησιμοποιώντας μία από τις διαθέσιμες μεθόδους (βλ. παρακάτω).

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

Οι επιλογές είναι οι εξής:

-4 Αναγκάζει το ssh να χρησιμοποιεί μόνο διευθύνσεις IPv4.

-6 Αναγκάζει το ssh να χρησιμοποιεί μόνο διευθύνσεις IPv6.

-A Ενεργοποιεί την προώθηση συνδέσεων από έναν διακομιστή ελέγχου ταυτότητας, όπως το ssh-agent(1). Αυτό μπορεί επίσης να καθοριστεί ανά κεντρικό υπολογιστή σε ένα αρχείο διαμόρφωσης.

Η προώθηση του διακομιστή ελέγχου ταυτότητας θα πρέπει να ενεργοποιείται με προσοχή. Οι χρήστες με τη δυνατότητα παράκαμψης των αδειών αρχείων στον απομακρυσμένο κεντρικό υπολογιστή (για την υποδοχή τομέα του διακομιστή ελέγχου ταυτότητας) μπορούν να αποκτήσουν πρόσβαση στον τοπικό διακομιστή ελέγχου ταυτότητας μέσω της προωθημένης σύνδεσης. Ένας επιτιθέμενος δεν μπορεί να αποκτήσει υλικό κλειδιού από τον διακομιστή ελέγχου ταυτότητας, ωστόσο μπορεί να εκτελέσει λειτουργίες στα κλειδιά που του επιτρέπουν να ελέγχει ταυτότητα με τις ταυτότητες που έχουν φορτωθεί στον διακομιστή ελέγχου ταυτότητας. Μια ασφαλέστερη εναλλακτική λύση μπορεί να είναι η χρήση ενός κεντρικού υπολογιστή ανακατεύθυνσης (βλ. -J).

-a Απενεργοποιεί την προώθηση της σύνδεσης του διακομιστή ελέγχου ταυτότητας.

-B bind_interface

Συνδέστε τη διεύθυνση της διεπαφής bind_interface πριν επιχειρήσετε να συνδεθείτε στον προορισμό. Αυτό είναι χρήσιμο μόνο σε συστήματα με περισσότερες από μία διευθύνσεις.

-b bind_address

Χρησιμοποιήστε τη διεύθυνση bind_address στην τοπική μηχανή ως την πηγαία διεύθυνση της σύνδεσης. Χρήσιμο μόνο σε συστήματα με περισσότερες από μία διευθύνσεις.


-C Ζητά συμπίεση όλων των δεδομένων (συμπεριλαμβανομένων των stdin, stdout, stderr και των δεδομένων για τις συνδέσεις X11, TCP και Unix-domain). Ο αλγόριθμος συμπίεσης είναι ο ίδιος που χρησιμοποιείται από το [gzip]({filename}../../gzip)(1). Η συμπίεση είναι επιθυμητή σε γραμμές modem και άλλες αργές συνδέσεις, αλλά θα επιβραδύνει μόνο τα πράγματα σε γρήγορα δίκτυα. Η προεπιλεγμένη τιμή μπορεί να οριστεί ανά κεντρικό υπολογιστή στα αρχεία διαμόρφωσης. δείτε την επιλογή Συμπίεση στο ssh_config(5) για περισσότερες πληροφορίες.

-c cipher_spec

Επιλέγει τις προδιαγραφές κρυπτογράφησης για την κρυπτογράφηση της συνεδρίας. Το cipher_spec είναι μια λίστα προδιαγραφών κρυπτογράφησης που χωρίζονται με κόμμα και παρατίθενται με σειρά προτίμησης. Δείτε τη λέξη-κλειδί Ciphers στο ssh_config(5) για περισσότερες πληροφορίες.

-D [bind_address:]port

Καθορίζει μια τοπική "δυναμική" εφαρμογή-επίπεδο προώθησης θυρών. Αυτό λειτουργεί με την εκχώρηση μιας υποδοχής για να ακούει τη θύρα στην τοπική πλευρά, προαιρετικά συνδεδεμένη στη καθορισμένη διεύθυνση bind_address. Όποτε γίνεται μια σύνδεση σε αυτήν τη θύρα, η σύνδεση προωθείται μέσω του ασφαλούς καναλιού και το πρωτόκολλο εφαρμογής χρησιμοποιείται στη συνέχεια για να καθοριστεί πού θα συνδεθεί από την απομακρυσμένη μηχανή. Αυτήν τη στιγμή υποστηρίζονται τα πρωτόκολλα SOCKS4 και SOCKS5 και το ssh θα λειτουργεί ως διακομιστής SOCKS. Μόνο ο χρήστης root μπορεί να προωθήσει προνομιούχες θύρες. Οι δυναμικές προωθήσεις θυρών μπορούν επίσης να καθοριστούν στο αρχείο διαμόρφωσης.

Οι διευθύνσεις IPv6 μπορούν να καθοριστούν περικλείοντας τη διεύθυνση σε αγκύλες. Μόνο ο χρήστης root μπορεί να προωθήσει προνομιούχες θύρες. Από προεπιλογή, η τοπική θύρα συνδέεται σύμφωνα με την ρύθμιση GatewayPorts. Ωστόσο, μπορεί να χρησιμοποιηθεί μια ρητή διεύθυνση bind_address για να συνδεθεί η σύνδεση σε μια συγκεκριμένη διεύθυνση. Η διεύθυνση bind_address "localhost" υποδεικνύει ότι η θύρα ακρόασης πρέπει να συνδεθεί για τοπική χρήση μόνο, ενώ μια κενή διεύθυνση ή το '*' υποδεικνύουν ότι η θύρα θα πρέπει να είναι διαθέσιμη από όλες τις διεπαφές.

-E log_file

Επισυνάψτε αρχεία καταγραφής εντοπισμού σφαλμάτων στο log_file αντί για την τυπική έξοδο.

-e escape_char

Ορίζει τον χαρακτήρα διαφυγής για συνεδρίες με μια pty (προεπιλογή: '\~'). Ο χαρακτήρας διαφυγής αναγνωρίζεται μόνο στην αρχή μιας γραμμής. Ο χαρακτήρας διαφυγής ακολουθούμενος από μια τελεία ('.') κλείνει τη σύνδεση. ακολουθούμενος από το Ctrl-Z αναστέλλει τη σύνδεση και ακολουθούμενος από τον εαυτό του στέλνει τον χαρακτήρα διαφυγής μία φορά. Ορίζοντας τον χαρακτήρα σε "none" απενεργοποιούνται όλες οι διαφυγές και η συνεδρία γίνεται πλήρως διαφανής.

-F configfile

Καθορίζει ένα εναλλακτικό αρχείο διαμόρφωσης ανά χρήστη. Εάν δοθεί ένα αρχείο διαμόρφωσης στη γραμμή εντολών, το αρχείο διαμόρφωσης σε επίπεδο συστήματος (/etc/ssh/ssh_config) θα αγνοηθεί. Η προεπιλογή για το αρχείο διαμόρφωσης ανά χρήστη είναι ~/.ssh/config. Εάν έχει οριστεί σε "none", δεν θα διαβαστούν αρχεία διαμόρφωσης.

-f Ζητά από το ssh να μεταβεί στο παρασκήνιο αμέσως πριν από την εκτέλεση της εντολής. Αυτό είναι χρήσιμο εάν το ssh πρόκειται να ζητήσει κωδικούς πρόσβασης ή κωδικές φράσεις, αλλά ο χρήστης το θέλει στο παρασκήνιο. Αυτό συνεπάγεται το -n. Ο συνιστώμενος τρόπος για να ξεκινήσετε προγράμματα X11 σε μια απομακρυσμένη τοποθεσία είναι με κάτι σαν ssh -f host xterm.

Εάν η επιλογή διαμόρφωσης ExitOnForwardFailure έχει οριστεί σε "yes", τότε ένας πελάτης που ξεκινά με -f θα περιμένει να δημιουργηθούν με επιτυχία όλες οι απομακρυσμένες προωθήσεις θυρών πριν μεταβεί σε λειτουργία στο παρασκήνιο. Ανατρέξτε στην περιγραφή του ForkAfterAuthentication στο ssh_config(5) για λεπτομέρειες.

-G  Προκαλεί την εκτύπωση της διαμόρφωσης του ssh μετά την αξιολόγηση των μπλοκ Host και Match και την έξοδο.

-g  Επιτρέπει στις απομακρυσμένες υποδοχές να συνδέονται σε τοπικές προωθημένες θύρες. Εάν χρησιμοποιείται σε μια σύνδεση πολλαπλών χρήσεων, αυτή η επιλογή πρέπει να καθορίζεται στη κύρια διαδικασία.

-I pkcs11
Καθορίζει τη βιβλιοθήκη κοινού κώδικα PKCS#11 που θα χρησιμοποιήσει το ssh για να επικοινωνήσει με ένα διακριτικό PKCS#11 που παρέχει κλειδιά για έλεγχο ταυτότητας χρήστη.

-i identity_file
Επιλέγει ένα αρχείο από το οποίο διαβάζεται η ταυτότητα (ιδιωτικό κλειδί) για έλεγχο ταυτότητας δημόσιου κλειδιού. Μπορείτε επίσης να καθορίσετε ένα αρχείο δημόσιου κλειδιού για να χρησιμοποιήσετε το αντίστοιχο ιδιωτικό κλειδί που έχει φορτωθεί στο ssh-agent(1) όταν το αρχείο ιδιωτικού κλειδιού δεν είναι παρόν τοπικά. Η προεπιλογή είναι ~/.ssh/id_rsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ecdsa_sk, ~/.ssh/id_ed25519 και ~/.ssh/id_ed25519_sk. Τα αρχεία ταυτότητας μπορούν επίσης να καθοριστούν ανά κεντρικό υπολογιστή στο αρχείο διαμόρφωσης. Είναι δυνατό να υπάρχουν πολλές επιλογές -i (και πολλές ταυτότητες που καθορίζονται στα αρχεία διαμόρφωσης). Εάν δεν έχουν καθοριστεί ρητά πιστοποιητικά από την οδηγία CertificateFile, το ssh θα προσπαθήσει επίσης να φορτώσει πληροφορίες πιστοποιητικού από το όνομα αρχείου που λαμβάνεται με την προσθήκη του -cert.pub στα ονόματα αρχείων ταυτότητας.

-J destination
Συνδέεται στον τελικό κεντρικό υπολογιστή κάνοντας πρώτα μια σύνδεση ssh στον ενδιάμεσο κεντρικό υπολογιστή που περιγράφεται από το destination και στη συνέχεια δημιουργώντας μια προώθηση TCP στον τελικό προορισμό από εκεί. Μπορούν να καθοριστούν πολλές ενδιάμεσες στάσεις διαχωρισμένες με κόμματα. Οι διευθύνσεις IPv6 μπορούν να καθοριστούν περικλείοντας τη διεύθυνση σε αγκύλες. Αυτή είναι μια συντόμευση για να καθορίσετε μια οδηγία διαμόρφωσης ProxyJump. Σημειώστε ότι οι οδηγίες διαμόρφωσης που παρέχονται στη γραμμή εντολών ισχύουν γενικά για τον τελικό κεντρικό υπολογιστή και όχι για τους καθορισμένους ενδιάμεσους κεντρικούς υπολογιστές. Χρησιμοποιήστε το ~/.ssh/config για να καθορίσετε τη διαμόρφωση για τους ενδιάμεσους κεντρικούς υπολογιστές.

-K  Ενεργοποιεί τον έλεγχο ταυτότητας βάσει GSSAPI και την προώθηση (παραχώρηση) των διαπιστευτηρίων GSSAPI στον διακομιστή.

-k  Απενεργοποιεί την προώθηση (παραχώρηση) των διαπιστευτηρίων GSSAPI στον διακομιστή.

-L [bind_address:]port:host:hostport
-L [bind_address:]port:remote_socket
-L local_socket:host:hostport
-L local_socket:remote_socket

Καθορίζει ότι οι συνδέσεις στην δεδομένη θύρα TCP ή στην τοπική υποδοχή Unix πρέπει να προωθούνται στη δεδομένη υποδοχή, ή θύρα, στον απομακρυσμένο κεντρικό υπολογιστή. Αυτό λειτουργεί με την κατανομή μιας υποδοχής για να ακούει είτε μια θύρα TCP στην τοπική πλευρά, προαιρετικά συνδεδεμένη στην καθορισμένη διεύθυνση bind_address, είτε σε μια υποδοχή Unix. Όταν πραγματοποιείται μια σύνδεση στη τοπική θύρα ή υποδοχή, η σύνδεση προωθείται μέσω του ασφαλούς καναλιού και πραγματοποιείται μια σύνδεση είτε στη θύρα κεντρικού υπολογιστή hostport, είτε στην υποδοχή Unix remote_socket, από τον απομακρυσμένο κεντρικό υπολογιστή.


Οι προωθήσεις θυρών μπορούν επίσης να καθοριστούν στο αρχείο διαμόρφωσης. Μόνο ο χρήστης root μπορεί να προωθήσει προνομιούχες θύρες. Οι διευθύνσεις IPv6 μπορούν να καθοριστούν περικλείοντας τη διεύθυνση σε αγκύλες.

Από προεπιλογή, η τοπική θύρα συνδέεται σύμφωνα με την ρύθμιση GatewayPorts. Ωστόσο, μπορεί να χρησιμοποιηθεί μια ρητή διεύθυνση σύνδεσης (bind_address) για να συνδεθεί η σύνδεση σε μια συγκεκριμένη διεύθυνση. Η διεύθυνση σύνδεσης "localhost" υποδεικνύει ότι η θύρα ακρόασης πρέπει να συνδεθεί μόνο για τοπική χρήση, ενώ μια κενή διεύθυνση ή το '*' υποδεικνύει ότι η θύρα θα πρέπει να είναι διαθέσιμη από όλες τις διεπαφές.

-l όνομα_χρήστη

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

-M      Θέτει τον πελάτη ssh σε "κύρια" λειτουργία για κοινή χρήση σύνδεσης. Πολλαπλές επιλογές -M
θέτουν το ssh σε "κύρια" λειτουργία, αλλά απαιτούν επιβεβαίωση χρησιμοποιώντας την εντολή ssh-askpass(1) πριν
από κάθε λειτουργία που αλλάζει την κατάσταση πολλαπλοποίησης (π.χ., άνοιγμα μιας νέας συνεδρίας). Ανατρέξτε στην
περιγραφή του ControlMaster στο ssh_config(5) για λεπτομέρειες.

-m mac_spec
Μια λίστα κωδικοποιημένων με κόμμα MAC (κωδικών ελέγχου μηνυμάτων), που καθορίζονται κατά σειρά προτίμησης. Δείτε την λέξη-κλειδί MACs στο ssh_config(5) για περισσότερες πληροφορίες.

-N      Μην εκτελέσετε μια απομακρυσμένη εντολή. Αυτό είναι χρήσιμο μόνο για την προώθηση θυρών. Ανατρέξτε στην
περιγραφή του SessionType στο ssh_config(5) για λεπτομέρειες.

-n      Ανακατευθύνει την τυπική είσοδο από το /dev/null (στην πραγματικότητα, αποτρέπει την ανάγνωση από
την τυπική είσοδο). Αυτό πρέπει να χρησιμοποιείται όταν το ssh εκτελείται στο παρασκήνιο. Ένα κοινό κόλπο είναι η χρήση αυτού για την εκτέλεση προγραμμάτων X11 σε μια απομακρυσμένη μηχανή. Για παράδειγμα, το ssh -n shadows.cs.hut.fi emacs & θα
ξεκινήσει ένα emacs στο shadows.cs.hut.fi και η σύνδεση X11 θα προωθηθεί αυτόματα μέσω ενός κρυπτογραφημένου καναλιού. Το πρόγραμμα ssh θα τεθεί σε κατάσταση αναμονής. (Αυτό δεν λειτουργεί εάν το ssh χρειάζεται να ζητήσει έναν κωδικό πρόσβασης ή μια φράση πρόσβασης. δείτε επίσης την επιλογή -f). Ανατρέξτε στην
περιγραφή του StdinNull στο ssh_config(5) για λεπτομέρειες.

-O ctl_cmd

Ελέγχει μια ενεργή διαδικασία πολλαπλοποίησης σύνδεσης. Όταν καθορίζεται η επιλογή -O, η παράμετρος ctl_cmd ερμηνεύεται και μεταβιβάζεται στην κύρια διαδικασία. Οι έγκυρες εντολές είναι: "check" (ελέγχει εάν η κύρια διαδικασία εκτελείται), "forward" (ζητά προωθήσεις χωρίς εκτέλεση εντολής), "cancel" (ακυρώνει προωθήσεις), "proxy" (συνδέεται σε μια εκτελούμενη διαδικασία πολλαπλοποίησης σε λειτουργία proxy), "exit" (ζητά από την κύρια διαδικασία να τερματιστεί) και "stop" (ζητά από την κύρια διαδικασία να σταματήσει να δέχεται περαιτέρω αιτήματα πολλαπλοποίησης).

-o επιλογή

Μπορεί να χρησιμοποιηθεί για την παροχή επιλογών στη μορφή που χρησιμοποιείται στο αρχείο διαμόρφωσης. Αυτό είναι χρήσιμο για την καθορισμό επιλογών για τις οποίες δεν υπάρχει ξεχωριστή σημαία γραμμής εντολών. Για πλήρεις λεπτομέρειες σχετικά με τις παρακάτω επιλογές και τις πιθανές τους τιμές, ανατρέξτε το ssh_config(5).


AddKeysToAgent
AddressFamily
BatchMode
BindAddress
BindInterface
CASignatureAlgorithms
CanonicalDomains
CanonicalizeFallbackLocal
CanonicalizeHostname
CanonicalizeMaxDots
CanonicalizePermittedCNAMEs
CertificateFile
ChannelTimeout
CheckHostIP
Ciphers
ClearAllForwardings
Compression
ConnectTimeout
ConnectionAttempts
ControlMaster
ControlPath
ControlPersist
DynamicForward
EnableEscapeCommandline
EnableSSHKeysign
EscapeChar
ExitOnForwardFailure
FingerprintHash
ForkAfterAuthentication
ForwardAgent
ForwardX11
ForwardX11Timeout
ForwardX11Trusted
GSSAPIAuthentication
GSSAPIKeyExchange
GSSAPIClientIdentity
GSSAPIDelegateCredentials
GSSAPIKexAlgorithms
GSSAPIRenewalForcesRekey
GSSAPIServerIdentity
GSSAPITrustDns
GatewayPorts
GlobalKnownHostsFile
HashKnownHosts
Host
HostKeyAlgorithms
HostKeyAlias
HostbasedAcceptedAlgorithms
HostbasedAuthentication
Hostname
IPQoS
IdentitiesOnly
IdentityAgent
IdentityFile
IgnoreUnknown
Include
KbdInteractiveAuthentication
KbdInteractiveDevices
KexAlgorithms
KnownHostsCommand
LocalCommand
LocalForward
LogLevel
LogVerbose
MACs
NoHostAuthenticationForLocalhost
NumberOfPasswordPrompts
ObscureKeystrokeTiming
PKCS11Provider
PasswordAuthentication
PermitLocalCommand
PermitRemoteOpen
Port
PreferredAuthentications
ProxyCommand
ProxyJump
ProxyUseFdpass
PubkeyAcceptedAlgorithms
PubkeyAuthentication
RekeyLimit
RemoteCommand
RemoteForward
RequestTTY
RequiredRSASize
RevokedHostKeys
SecurityKeyProvider
SendEnv
ServerAliveCountMax
ServerAliveInterval
SessionType
SetEnv
StdinNull
StreamLocalBindMask
StreamLocalBindUnlink
StrictHostKeyChecking
SyslogFacility
TCPKeepAlive
Tag
Tunnel
TunnelDevice
UpdateHostKeys
User
UserKnownHostsFile
VerifyHostKeyDNS
VisualHostKey
XAuthLocation

-P tag  Καθορίστε ένα όνομα ετικέτας που μπορεί να χρησιμοποιηθεί για την επιλογή διαμόρφωσης στο ssh_config(5). Ανατρέξτε στις λέξεις-κλειδιά Tag και Match στο ssh_config(5) για περισσότερες πληροφορίες.
-p port
Port    Θύρα για σύνδεση στον απομακρυσμένο κεντρικό υπολογιστή. Αυτό μπορεί να καθοριστεί ανά κεντρικό υπολογιστή στη διαμόρφωση αρχείου.

-Q query_option
Ερωτήσεις για τους αλγορίθμους που υποστηρίζονται από μία από τις ακόλουθες λειτουργίες: cipher (υποστηριζόμενες συμμετρικές κρυπτογραφήσεις), cipher-auth (υποστηριζόμενες συμμετρικές κρυπτογραφήσεις που υποστηρίζουν έλεγχο ταυτότητας κρυπτογράφησης), help (υποστηριζόμενοι όροι ερωτημάτων για χρήση με τη σημαία -Q), mac (υποστηριζόμενοι κώδικες ακεραιότητας μηνυμάτων), kex (αλγόριθμοι ανταλλαγής κλειδιών), kex-gss (αλγόριθμοι ανταλλαγής κλειδιών GSSAPI), key (τύποι κλειδιών), key-ca-sign (έγκυροι αλγόριθμοι υπογραφής CA για πιστοποιητικά), key-cert (τύποι κλειδιών πιστοποιητικών), key-plain (τύποι κλειδιών που δεν είναι πιστοποιητικά), key-sig (όλοι οι τύποι κλειδιών και οι αλγόριθμοι υπογραφής), protocol-version (υποστηριζόμενες εκδόσεις πρωτοκόλλου SSH) και sig (υποστηριζόμενοι αλγόριθμοι υπογραφής). Εναλλακτικά, οποιαδήποτε λέξη-κλειδί από το ssh_config(5) ή το sshd_config(5) που παίρνει μια λίστα αλγορίθμων μπορεί να χρησιμοποιηθεί ως ψευδώνυμο για την αντίστοιχη επιλογή ερωτήματος.

-q      Λειτουργία σίγασης. Καταστέλλει τις περισσότερες προειδοποιητικές και διαγνωστικές μηνύματα.

-R [bind_address:]port:host:hostport
-R [bind_address:]port:local_socket
-R remote_socket:host:hostport
-R remote_socket:local_socket
-R [bind_address:]port

Καθορίζει ότι οι συνδέσεις στην δεδομένη θύρα TCP ή στην πρίζα Unix στην απομακρυσμένη (διακομιστή) μηχανή θα προωθηθούν στην τοπική πλευρά.

Αυτό λειτουργεί με την εκχώρηση μιας πρίζας για ακρόαση είτε σε μια θύρα TCP είτε σε μια πρίζα Unix στην απομακρυσμένη πλευρά. Όποτε γίνεται μια σύνδεση σε αυτή τη θύρα ή στην πρίζα Unix, η σύνδεση προωθείται μέσω του ασφαλούς καναλιού και γίνεται μια σύνδεση από την τοπική μηχανή είτε σε έναν ρητό προορισμό που καθορίζεται από την host:port ή local_socket, είτε, εάν δεν έχει καθοριστεί ρητός προορισμός, το ssh θα λειτουργήσει ως διακομιστής μεσολάβησης SOCKS 4/5 και θα προωθήσει συνδέσεις στους προορισμούς που ζητούνται από τον απομακρυσμένο πελάτη SOCKS.

Η προώθηση θυρών μπορεί επίσης να καθοριστεί στο αρχείο διαμόρφωσης. Οι προνομιούχες θύρες μπορούν να προωθηθούν μόνο όταν συνδέεστε ως root στην απομακρυσμένη μηχανή. Οι διευθύνσεις IPv6 μπορούν να καθοριστούν τοποθετώντας τη διεύθυνση σε αγκύλες.

Από προεπιλογή, οι θύρες ακρόασης TCP στον διακομιστή θα συνδέονται μόνο στη διεπαφή loopback. Αυτό μπορεί να παρακαμφθεί καθορίζοντας μια διεύθυνση bind_address. Μια κενή διεύθυνση bind_address ή η διεύθυνση '*', υποδεικνύει ότι η απομακρυσμένη πρίζα θα πρέπει να ακούει σε όλες τις διεπαφές. Η καθορισμένη απομακρυσμένη διεύθυνση bind_address θα επιτύχει μόνο εάν η επιλογή GatewayPorts του διακομιστή είναι ενεργοποιημένη (δείτε sshd_config(5)).

Εάν το όρισμα της θύρας είναι '0', η θύρα ακρόασης θα εκχωρηθεί δυναμικά στον διακομιστή και θα αναφερθεί στον πελάτη κατά την εκτέλεση. Όταν χρησιμοποιείται μαζί με την επιλογή -O forward, η εκχωρημένη θύρα θα εκτυπωθεί στην τυπική έξοδο.

-S ctl_path

Καθορίζει την τοποθεσία μιας πρίζας ελέγχου για κοινή χρήση συνδέσεων ή τη συμβολοσειρά "none" για να απενεργοποιήσετε την κοινή χρήση συνδέσεων. Ανατρέξτε στην περιγραφή των ControlPath και ControlMaster στο ssh_config(5) για λεπτομέρειες.

-s      Μπορεί να χρησιμοποιηθεί για να ζητηθεί η ενεργοποίηση ενός υποσυστήματος στο απομακρυσμένο σύστημα. Τα υποσυστήματα διευκολύνουν τη χρήση του SSH ως ασφαλούς μεταφοράς για άλλες εφαρμογές (π.χ. [sftp]({filename}../../sftp)(1)).
Το υποσύστημα καθορίζεται ως η απομακρυσμένη εντολή. Ανατρέξτε στην περιγραφή του SessionType στο
ssh_config(5) για λεπτομέρειες.

-T      Απενεργοποιήστε την εκχώρηση ψευδο-τερματικού.

-t      Επιβάλλετε την εκχώρηση ψευδο-τερματικού. Αυτό μπορεί να χρησιμοποιηθεί για την εκτέλεση αυθαίρετων προγραμμάτων που βασίζονται σε οθόνη σε μια απομακρυσμένη μηχανή, κάτι που μπορεί να είναι πολύ χρήσιμο, π.χ. κατά την εφαρμογή υπηρεσιών μενού. Πολλαπλές επιλογές -t επιβάλλουν την εκχώρηση tty, ακόμη και αν το ssh δεν έχει τοπικό tty.

-V      Εμφανίστε τον αριθμό έκδοσης και εξέλθετε.

-v      Λειτουργία λεπτομερούς αναφοράς. Προκαλεί την εκτύπωση μηνυμάτων εντοπισμού σφαλμάτων από το ssh σχετικά με την πρόοδό του. Αυτό είναι χρήσιμο για την αποσφαλμάτωση προβλημάτων σύνδεσης, αυθεντικοποίησης και διαμόρφωσης. Πολλαπλές επιλογές -v αυξάνουν τη λεπτομέρεια. Το μέγιστο είναι 3.

-W host:port
Ζητάει να προωθηθεί η τυπική είσοδος και έξοδος του πελάτη στο host στη θύρα που καθορίζεται μέσω του ασφαλούς καναλιού. Υπονοεί τις επιλογές -N, -T, ExitOnForwardFailure και ClearAllForwardings, αν και αυτές μπορούν να παρακαμφθούν στο αρχείο διαμόρφωσης ή χρησιμοποιώντας τις επιλογές της γραμμής εντολών -o.

-w local_tun[:remote_tun]
Ζητάει προώθηση συσκευής σήραγγας με τις καθορισμένες συσκευές tun(4) μεταξύ του πελάτη (local_tun) και του διακομιστή (remote_tun).

Οι συσκευές μπορούν να καθοριστούν με αριθμητικό αναγνωριστικό ή με τη λέξη-κλειδί "any", η οποία χρησιμοποιεί την επόμενη διαθέσιμη συσκευή σήραγγας. Εάν δεν καθοριστεί το remote_tun, προεπιλέγεται στο "any". Δείτε επίσης τις οδηγίες Tunnel και TunnelDevice στο ssh_config(5).

Εάν η οδηγία Tunnel δεν έχει οριστεί, θα οριστεί στην προεπιλεγμένη λειτουργία σήραγγας, η οποία είναι "point-to-point". Εάν επιθυμείτε μια διαφορετική λειτουργία προώθησης Tunnel, θα πρέπει να καθοριστεί πριν από την επιλογή -w.

-X      Ενεργοποιεί την προώθηση X11. Αυτό μπορεί επίσης να καθοριστεί ανά κεντρικό υπολογιστή στο αρχείο διαμόρφωσης.

Η προώθηση X11 θα πρέπει να ενεργοποιείται με προσοχή. Οι χρήστες που έχουν τη δυνατότητα να παρακάμψουν τα δικαιώματα αρχείων στον απομακρυσμένο κεντρικό υπολογιστή (για τη βάση δεδομένων εξουσιοδότησης X του χρήστη) μπορούν να αποκτήσουν πρόσβαση στην τοπική οθόνη X11 μέσω της προωθημένης σύνδεσης. Ένας εισβολέας μπορεί τότε να είναι σε θέση να εκτελέσει δραστηριότητες όπως η παρακολούθηση των πληκτρολογήσεων.

Για αυτόν τον λόγο, η προώθηση X11 υπόκειται σε περιορισμούς επέκτασης ΑΣΦΑΛΕΙΑΣ X11 από προεπιλογή. Ανατρέξτε στην επιλογή ssh -Y και στην οδηγία ForwardX11Trusted στο ssh_config(5) για περισσότερες πληροφορίες.

(Συγκεκριμένο για Debian: Η προώθηση X11 δεν υπόκειται σε περιορισμούς επέκτασης ΑΣΦΑΛΕΙΑΣ X11 από προεπιλογή, επειδή πάρα πολλά προγράμματα καταρρέουν σε αυτήν τη λειτουργία. Ορίστε την επιλογή ForwardX11Trusted σε "no" για να επαναφέρετε τη συμπεριφορά της αρχικής έκδοσης. Αυτό μπορεί να αλλάξει στο μέλλον ανάλογα με τις βελτιώσεις στην πλευρά του πελάτη.)

-x      Απενεργοποιεί την προώθηση X11.

-y      Ενεργοποιεί την αξιόπιστη προώθηση X11. Οι αξιόπιστες προωθήσεις X11 δεν υπόκεινται στους ελέγχους επέκτασης ΑΣΦΑΛΕΙΑΣ X11.

(Συγκεκριμένο για Debian: Στη προεπιλεγμένη διαμόρφωση, αυτή η επιλογή είναι ισοδύναμη με την επιλογή -X, επειδή η ForwardX11Trusted προεπιλέγεται σε "yes" όπως περιγράφεται παραπάνω. Ορίστε την επιλογή ForwardX11Trusted σε "no" για να επαναφέρετε τη συμπεριφορά της αρχικής έκδοσης. Αυτό μπορεί να αλλάξει στο μέλλον ανάλογα με τις βελτιώσεις στην πλευρά του πελάτη.)

-y      Αποστέλλει πληροφορίες καταγραφής χρησιμοποιώντας την ενότητα συστήματος syslog(3). Από προεπιλογή, αυτές οι πληροφορίες αποστέλλονται στο stderr.

Το ssh μπορεί επίσης να αντλήσει δεδομένα διαμόρφωσης από ένα αρχείο διαμόρφωσης ανά χρήστη και ένα αρχείο διαμόρφωσης σε επίπεδο συστήματος. Η μορφή του αρχείου και οι επιλογές διαμόρφωσης περιγράφονται στο ssh_config(5).

ΑΥΘΕΝΤΙΚΕΥΣΗ

Ο πελάτης SSH του OpenSSH υποστηρίζει το πρωτόκολλο SSH έκδοσης 2.

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

Η αυθεντικοποίηση βάσει κεντρικού υπολογιστή λειτουργεί ως εξής: Εάν ο υπολογιστής από τον οποίο συνδέεται ο χρήστης περιλαμβάνεται στα /etc/hosts.equiv ή /etc/ssh/shosts.equiv στον απομακρυσμένο υπολογιστή, ο χρήστης δεν είναι root και τα ονόματα χρήστη είναι τα ίδια και στις δύο πλευρές, ή εάν τα αρχεία ~/.rhosts ή ~/.shosts υπάρχουν στον κατάλογο του χρήστη στον απομακρυσμένο υπολογιστή και περιέχουν μια γραμμή που περιέχει το όνομα του υπολογιστή-πελάτη και το όνομα του χρήστη σε αυτόν, τότε ο χρήστης θεωρείται ότι μπορεί να συνδεθεί. Επιπλέον, ο διακομιστής πρέπει να είναι σε θέση να επαληθεύσει το κλειδί κεντρικού υπολογιστή του πελάτη (δείτε την περιγραφή των /etc/ssh/ssh_known_hosts και ~/.ssh/known_hosts, παρακάτω) για να επιτραπεί η σύνδεση. Αυτή η μέθοδος αυθεντικοποίησης κλείνει τρύπες ασφαλείας που προκαλούνται από την πλαστογράφηση IP, την πλαστογράφηση DNS και την πλαστογράφηση δρομολόγησης. [Σημείωση προς τον διαχειριστή: τα /etc/hosts.equiv, ~/.rhosts και το πρωτόκολλο rlogin/rsh γενικά είναι εγγενώς ανασφαλείς και θα πρέπει να απενεργοποιηθούν εάν απαιτείται ασφάλεια.]

Η αυθεντικοποίηση με δημόσιο κλειδί λειτουργεί ως εξής: Το σχήμα βασίζεται στην κρυπτογραφία δημόσιου κλειδιού, χρησιμοποιώντας κρυπτοσυστήματα όπου η κρυπτογράφηση και η αποκρυπτογράφηση γίνονται με τη χρήση διακριτών κλειδιών και είναι ανέφικτο να εξαχθεί το κλειδί αποκρυπτογράφησης από το κλειδί κρυπτογράφησης. Η ιδέα είναι ότι κάθε χρήστης δημιουργεί ένα ζεύγος δημόσιου/ιδιωτικού κλειδιού για σκοπούς αυθεντικοποίησης. Ο διακομιστής γνωρίζει το δημόσιο κλειδί και μόνο ο χρήστης γνωρίζει το ιδιωτικό κλειδί. Το ssh εφαρμόζει αυτόματα το πρωτόκολλο αυθεντικοποίησης δημόσιου κλειδιού, χρησιμοποιώντας έναν από τους αλγορίθμους ECDSA, Ed25519 ή RSA.

Το αρχείο ~/.ssh/authorized_keys περιέχει τα δημόσια κλειδιά που επιτρέπονται για τη σύνδεση. Όταν ο χρήστης συνδέεται, το πρόγραμμα ssh ενημερώνει τον διακομιστή για το ποιο ζεύγος κλειδιών θα ήθελε να χρησιμοποιήσει για αυθεντικοποίηση. Ο πελάτης αποδεικνύει ότι έχει πρόσβαση στο ιδιωτικό κλειδί και ο διακομιστής ελέγχει ότι το αντίστοιχο δημόσιο κλειδί είναι εξουσιοδοτημένο για να δεχτεί τον λογαριασμό.

Ο διακομιστής μπορεί να ενημερώσει τον πελάτη για σφάλματα που εμπόδισαν την επιτυχή αυθεντικοποίηση με δημόσιο κλειδί, αφού ολοκληρωθεί η αυθεντικοποίηση με διαφορετικό τρόπο. Αυτά μπορούν να προβληθούν αυξάνοντας το επίπεδο καταγραφής σε DEBUG ή υψηλότερο (π.χ. χρησιμοποιώντας την επιλογή -v).

Ο χρήστης δημιουργεί το ζεύγος κλειδιών του εκτελώντας την εντολή ssh-keygen(1). Αυτό αποθηκεύει το ιδιωτικό κλειδί στο ~/.ssh/id_ecdsa (ECDSA), ~/.ssh/id_ecdsa_sk (authenticator-hosted ECDSA), ~/.ssh/id_ed25519 (Ed25519), ~/.ssh/id_ed25519_sk (authenticator-hosted Ed25519), ή ~/.ssh/id_rsa (RSA) και αποθηκεύει το δημόσιο κλειδί στο ~/.ssh/id_ecdsa.pub (ECDSA), ~/.ssh/id_ecdsa_sk.pub (authenticator-hosted ECDSA), ~/.ssh/id_ed25519.pub (Ed25519), ~/.ssh/id_ed25519_sk.pub (authenticator-hosted Ed25519), ή ~/.ssh/id_rsa.pub (RSA) στον κατάλογο του χρήστη. Στη συνέχεια, ο χρήστης θα πρέπει να αντιγράψει το δημόσιο κλειδί στο ~/.ssh/authorized_keys στον κατάλογό του στον απομακρυσμένο υπολογιστή. Το αρχείο authorized_keys αντιστοιχεί στο συμβατικό αρχείο ~/.rhosts και περιέχει ένα κλειδί ανά γραμμή, αν και οι γραμμές μπορούν να είναι πολύ μεγάλες. Μετά από αυτό, ο χρήστης μπορεί να συνδεθεί χωρίς να χρειάζεται να εισαγάγει τον κωδικό πρόσβασης.

Μια παραλλαγή της δημόσιας κρυπτογραφίας διαθέτει τη μορφή πιστοποιητικής αυθεντικοποίησης: αντί για ένα σύνολο δημόσιων/ιδιωτικών κλειδιών, χρησιμοποιούνται υπογεγραμμένα πιστοποιητικά. Αυτό έχει το πλεονέκτημα ότι μπορεί να χρησιμοποιηθεί μια ενιαία αξιόπιστη αρχή πιστοποίησης αντί για πολλά δημόσια/ιδιωτικά κλειδιά. Δείτε την ενότητα ΠΙΣΤΟΠΟΙΗΤΙΚΑ του ssh-keygen(1) για περισσότερες πληροφορίες.

Ο πιο βολικός τρόπος για να χρησιμοποιήσετε δημόσια κρυπτογραφία ή πιστοποιητική αυθεντικοποίηση είναι μέσω ενός διαχειριστή αυθεντικοποίησης. Δείτε το ssh-agent(1) και (προαιρετικά) την οδηγία AddKeysToAgent στο ssh_config(5) για περισσότερες πληροφορίες.

Η αλληλεπιδραστική αυθεντικοποίηση μέσω πληκτρολογίου λειτουργεί ως εξής: Ο διακομιστής στέλνει ένα αυθαίρετο κείμενο "πρόκλησης" και ζητά μια απάντηση, ενδεχομένως πολλές φορές. Παραδείγματα αλληλεπιδραστικής αυθεντικοποίησης μέσω πληκτρολογίου περιλαμβάνουν την Αυθεντικοποίηση BSD (δείτε το login.conf(5)) και το PAM (σε ορισμένα μη-OpenBSD συστήματα).

Τέλος, εάν άλλες μέθοδοι αυθεντικοποίησης αποτύχουν, το ssh ζητά από τον χρήστη έναν κωδικό πρόσβασης. Ο κωδικός πρόσβασης αποστέλλεται στον απομακρυσμένο υπολογιστή για έλεγχο. Ωστόσο, επειδή όλες οι επικοινωνίες είναι κρυπτογραφημένες, ο κωδικός πρόσβασης δεν μπορεί να δει κανείς που παρακολουθεί το δίκτυο.

Το ssh διατηρεί και ελέγχει αυτόματα μια βάση δεδομένων που περιέχει αναγνωριστικά για όλους τους υπολογιστές με τους οποίους έχει χρησιμοποιηθεί. Τα κλειδιά υπολογιστών αποθηκεύονται στο ~/.ssh/known_hosts στον κατάλογο της αρχικής σελίδας του χρήστη. Επιπλέον, το αρχείο /etc/ssh/ssh_known_hosts ελέγχεται αυτόματα για γνωστούς υπολογιστές. Οποιοιδήποτε νέοι υπολογιστές προστίθενται αυτόματα στο αρχείο του χρήστη. Εάν η ταυτότητα ενός υπολογιστή αλλάξει ποτέ, το ssh προειδοποιεί για αυτό και απενεργοποιεί την αυθεντικοποίηση με κωδικό πρόσβασης για να αποτρέψει την πλαστογράφηση του διακομιστή ή τις επιθέσεις "man-in-the-middle", οι οποίες διαφορετικά θα μπορούσαν να χρησιμοποιηθούν για να παρακάμψουν την κρυπτογράφηση. Η επιλογή StrictHostKeyChecking μπορεί να χρησιμοποιηθεί για να ελέγξει τις συνδέσεις σε υπολογιστές των οποίων το κλειδί υπολογιστή δεν είναι γνωστό ή έχει αλλάξει.

Όταν η ταυτότητα του χρήστη έχει γίνει αποδεκτή από τον διακομιστή, ο διακομιστής είτε εκτελεί την δεδομένη εντολή σε μια μη διαδραστική συνεδρία είτε, εάν δεν έχει καθοριστεί καμία εντολή, συνδέεται στον υπολογιστή και παρέχει στον χρήστη ένα κανονικό τερματικό ως διαδραστική συνεδρία. Όλη η επικοινωνία με την απομακρυσμένη εντολή ή το τερματικό θα κρυπτογραφείται αυτόματα.

Εάν ζητηθεί μια διαδραστική συνεδρία, το ssh από προεπιλογή θα ζητήσει ένα ψευδο-τερματικό (pty) μόνο για διαδραστικές συνεδρίες όταν ο πελάτης έχει ένα. Οι σημαίες -T και -t μπορούν να χρησιμοποιηθούν για να παρακάμψουν αυτήν τη συμπεριφορά.

Εάν έχει εκχωρηθεί ένα ψευδο-τερματικό, ο χρήστης μπορεί να χρησιμοποιήσει τα χαρακτήρες ελέγχου που αναφέρονται παρακάτω.

Εάν δεν έχει εκχωρηθεί ψευδο-τερματικό, η συνεδρία είναι διαφανής και μπορεί να χρησιμοποιηθεί για τη μεταφορά δυαδικών δεδομένων. Στα περισσότερα συστήματα, η ρύθμιση του χαρακτήρα ελέγχου σε "καμία" θα κάνει επίσης τη συνεδρία διαφανή, ακόμη και αν χρησιμοποιείται ένα tty.


Η συνεδρία τερματίζεται όταν η εντολή ή το shell στην απομακρυσμένη μηχανή τερματίζεται και όλες οι συνδέσεις X11 και TCP έχουν κλείσει.

ΧΑΡΑΚΤΗΡΕΣ ΔΙΑΦΥΓΗΣ

Όταν έχει ζητηθεί ένα ψευδο-τερματικό, το ssh υποστηρίζει διάφορες λειτουργίες μέσω της χρήσης ενός χαρακτήρα διαφυγής.

Ένας απλός χαρακτήρας παύλας (~) μπορεί να σταλεί ως ~~ ή ακολουθώντας την παύλα με έναν χαρακτήρα διαφορετικό από αυτούς που περιγράφονται παρακάτω. Ο χαρακτήρας διαφυγής πρέπει πάντα να ακολουθεί μια νέα γραμμή για να ερμηνευτεί ως ειδικός. Ο χαρακτήρας διαφυγής μπορεί να αλλάξει στα αρχεία διαμόρφωσης χρησιμοποιώντας την οδηγία διαμόρφωσης EscapeChar ή στη γραμμή εντολών με την επιλογή -e.

Οι υποστηριζόμενοι χαρακτήρες διαφυγής (υποθέτοντας την προεπιλεγμένη τιμή '\~') είναι:

~.      Αποσύνδεση.

~^Z     Αποστολή του ssh στο παρασκήνιο.

~#      Λίστα με τις προωθημένες συνδέσεις.

~&      Αποστολή του ssh στο παρασκήνιο κατά την έξοδο, όταν περιμένετε για την τερμάτιση των προωθημένων συνδέσεων / συνεδριών X11.

~?      Εμφάνιση μιας λίστας με τους χαρακτήρες διαφυγής.

~B      Αποστολή ενός σήματος BREAK στο απομακρυσμένο σύστημα (χρήσιμο μόνο εάν το αντίστοιχο άκρο το υποστηρίζει).

~C      Άνοιγμα γραμμής εντολών. Αυτό επιτρέπει επί του παρόντος την προσθήκη προωθήσεων θυρών χρησιμοποιώντας τις επιλογές -L, -R και -D (βλ. παραπάνω). Επιτρέπει επίσης την ακύρωση των υπαρχουσών προωθήσεων θυρών με -KL[bind_address:]port για τοπικές, -KR[bind_address:]port για απομακρυσμένες και -KD[bind_address:]port για δυναμικές προωθήσεις θυρών. Η εντολή !command επιτρέπει στον χρήστη να εκτελέσει μια τοπική εντολή εάν η επιλογή PermitLocalCommand είναι ενεργοποιημένη στο ssh_config(5). Βασική βοήθεια είναι διαθέσιμη, χρησιμοποιώντας την επιλογή -h.

~R      Αίτημα επαναδιαπραγμάτευσης της σύνδεσης (χρήσιμο μόνο εάν το αντίστοιχο άκρο το υποστηρίζει).

~V      Μείωση της καταγραφής (LogLevel) όταν τα σφάλματα γράφονται στο stderr.

~v      Αύξηση της καταγραφής (LogLevel) όταν τα σφάλματα γράφονται στο stderr.

ΠΡΩΘΥΣΗ TCP

Η προώθηση αυθαίρετων συνδέσεων TCP μέσω ενός ασφαλούς καναλιού μπορεί να καθοριστεί είτε στη γραμμή εντολών είτε σε ένα αρχείο διαμόρφωσης. Μια πιθανή εφαρμογή της προώθησης TCP είναι μια ασφαλής σύνδεση σε έναν διακομιστή αλληλογραφίας. μια άλλη είναι η διέλευση μέσω τειχών προστασίας.

Στο παρακάτω παράδειγμα, εξετάζουμε την κρυπτογράφηση της επικοινωνίας για έναν πελάτη IRC, ακόμη και αν ο διακομιστής IRC στον οποίο συνδέεται δεν υποστηρίζει άμεσα κρυπτογραφημένη επικοινωνία. Αυτό λειτουργεί ως εξής: ο χρήστης συνδέεται στον απομακρυσμένο κεντρικό υπολογιστή χρησιμοποιώντας το ssh, καθορίζοντας τις θύρες που θα χρησιμοποιηθούν για την προώθηση της σύνδεσης. Μετά από αυτό, είναι δυνατό να ξεκινήσει το πρόγραμμα τοπικά και το ssh θα κρυπτογραφήσει και θα προωθήσει τη σύνδεση στον απομακρυσμένο διακομιστή.

Το ακόλουθο παράδειγμα δημιουργεί μια σήραγγα μιας συνεδρίας IRC από τον πελάτη σε έναν διακομιστή IRC στο "server.example.com", συμμετέχοντας στο κανάλι "#users", ψευδώνυμο "pinky", χρησιμοποιώντας την τυπική θύρα IRC, 6667

$ ssh -f -L 6667:localhost:6667 server.example.com sleep 10
$ irc -c '#users' pinky IRC/127.0.0.1

Η επιλογή -f θέτει το ssh στο παρασκήνιο και η απομακρυσμένη εντολή "sleep 10" καθορίζεται για να επιτρέψει ένα χρονικό διάστημα (10 δευτερόλεπτα στο παράδειγμα) για να ξεκινήσει το πρόγραμμα που θα χρησιμοποιήσει τη σήραγγα. Εάν δεν πραγματοποιηθούν συνδέσεις εντός του καθορισμένου χρόνου, το ssh θα τερματιστεί.


ΠΡΩΘΟΚΟΛΛΗΣΗ X11

Εάν η μεταβλητή ForwardX11 έχει οριστεί σε «yes» (ή δείτε την περιγραφή των επιλογών -X, -x και -Y παραπάνω) και ο χρήστης χρησιμοποιεί το X11 (η μεταβλητή περιβάλλοντος DISPLAY έχει οριστεί), η σύνδεση στην οθόνη X11 προωθείται αυτόματα στην απομακρυσμένη πλευρά με τέτοιο τρόπο ώστε τυχόν προγράμματα X11 που εκκινούνται από το shell (ή την εντολή) να περνούν από το κρυπτογραφημένο κανάλι και η σύνδεση στον πραγματικό διακομιστή X να γίνεται από το τοπικό μηχάνημα. Ο χρήστης δεν θα πρέπει να ορίσει χειροκίνητα την DISPLAY. Η προώθηση των συνδέσεων X11 μπορεί να διαμορφωθεί στη γραμμή εντολών ή στα αρχεία διαμόρφωσης.

Η τιμή DISPLAY που ορίζεται από το ssh θα δείχνει στο μηχάνημα διακομιστή, αλλά με έναν αριθμό οθόνης μεγαλύτερο του μηδενός. Αυτό είναι φυσιολογικό και συμβαίνει επειδή το ssh δημιουργεί έναν «διακομιστή proxy» X στο μηχάνημα διακομιστή για τη μεταφορά των συνδέσεων μέσω του κρυπτογραφημένου καναλιού.

Το ssh θα ρυθμίσει επίσης αυτόματα τα δεδομένα Xauthority στο μηχάνημα διακομιστή. Για αυτόν τον σκοπό, θα δημιουργήσει μια τυχαία μπισκότα εξουσιοδότησης, θα την αποθηκεύσει στο Xauthority στον διακομιστή και θα επαληθεύσει ότι τυχόν προωθημένες συνδέσεις μεταφέρουν αυτήν την μπισκότα και θα την αντικαταστήσουν με την πραγματική μπισκότα όταν ανοίξει η σύνδεση. Η πραγματική μπισκότα εξουσιοδότησης δεν αποστέλλεται ποτέ στο μηχάνημα διακομιστή (και δεν αποστέλλονται μπισκότες στο απλό κείμενο).

Εάν η μεταβλητή ForwardAgent έχει οριστεί σε «yes» (ή δείτε την περιγραφή των επιλογών -A και -a παραπάνω) και ο χρήστης χρησιμοποιεί έναν διακομιστή εξουσιοδότησης, η σύνδεση στον διακομιστή εξουσιοδότησης προωθείται αυτόματα στην απομακρυσμένη πλευρά.

ΕΠΙΒΕΒΑΙΩΣΗ ΚΛΕΙΔΙΩΝ ΦΙΛΟΞΕΝΗΤΗ

Όταν συνδέεστε σε έναν διακομιστή για πρώτη φορά, παρουσιάζεται στον χρήστη ένα αποτύπωμα του δημόσιου κλειδιού του διακομιστή (εκτός εάν η επιλογή StrictHostKeyChecking έχει απενεργοποιηθεί). Τα αποτυπώματα μπορούν να προσδιοριστούν χρησιμοποιώντας την εντολή ssh-keygen(1):

$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

Εάν το αποτύπωμα είναι ήδη γνωστό, μπορεί να αντιστοιχιστεί και το κλειδί μπορεί να γίνει αποδεκτό ή να απορριφθεί. Εάν είναι διαθέσιμα μόνο παλαιά (MD5) αποτυπώματα για τον διακομιστή, η επιλογή ssh-keygen(1) -E μπορεί να χρησιμοποιηθεί για να υποβιβαστεί ο αλγόριθμος αποτυπώματος, ώστε να ταιριάζει.

Λόγω της δυσκολίας σύγκρισης κλειδιών διακομιστή απλώς κοιτάζοντας συμβολοσειρές αποτυπωμάτων, υπάρχει επίσης υποστήριξη για τη σύγκριση κλειδιών διακομιστή οπτικά, χρησιμοποιώντας τυχαία τέχνη. Ορίζοντας την επιλογή VisualHostKey σε «yes», εμφανίζεται ένα μικρό ASCII γραφικό σε κάθε σύνδεση σε έναν διακομιστή, ανεξάρτητα από το αν η ίδια η συνεδρία είναι διαδραστική ή όχι. Μαθαίνοντας το μοτίβο που παράγει ένας γνωστός διακομιστής, ένας χρήστης μπορεί εύκολα να διαπιστώσει ότι το κλειδί διακομιστή έχει αλλάξει όταν εμφανίζεται ένα εντελώς διαφορετικό μοτίβο. Επειδή αυτά τα μοτίβα δεν είναι αμφιλεγόμενα, ένα μοτίβο που μοιάζει με το απομνημονευμένο μοτίβο δίνει μόνο μια καλή πιθανότητα ότι το κλειδί διακομιστή είναι το ίδιο, δεν παρέχει εγγυημένη απόδειξη.


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

$ ssh-keygen -lv -f ~/.ssh/known_hosts

Εάν το δακτυλικό αποτύπωμα είναι άγνωστο, είναι διαθέσιμη μια εναλλακτική μέθοδος επαλήθευσης: τα δακτυλικά αποτυπώματα SSH που επαληθεύονται μέσω DNS. Μια πρόσθετη εγγραφή πόρων (RR), SSHFP, προστίθεται σε ένα αρχείο ζώνης και ο συνδεδεμένος πελάτης μπορεί να αντιστοιχίσει το δακτυλικό αποτύπωμα με αυτό του κλειδιού που παρουσιάζεται.

Σε αυτό το παράδειγμα, συνδέουμε έναν πελάτη σε έναν διακομιστή, «host.example.com». Οι εγγραφές πόρων SSHFP θα πρέπει πρώτα να προστεθούν στο αρχείο ζώνης για το host.example.com:

$ ssh-keygen -r host.example.com.

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

$ dig -t SSHFP host.example.com

Τέλος, ο πελάτης συνδέεται:

$ ssh -o "VerifyHostKeyDNS ask" host.example.com
[...]

Βρέθηκε αντιστοιχία δακτυλικού αποτυπώματος κεντρικού υπολογιστή στο DNS. Είστε σίγουροι ότι θέλετε να συνεχίσετε τη σύνδεση (ναι/όχι);

Δείτε την επιλογή VerifyHostKeyDNS στο ssh_config(5) για περισσότερες πληροφορίες.

ΕΙΚΟΝΙΚΑ ΙΔΙΩΤΙΚΑ ΔΙΚΤΥΑ ΒΑΣΙΣΜΕΝΑ ΣΤΟ SSH

Το ssh περιέχει υποστήριξη για εικονική ιδιωτική δικτύωση (VPN) χρησιμοποιώντας τη συσκευή δικτύου tun(4), επιτρέποντας σε δύο δίκτυα να συνδεθούν με ασφάλεια. Η επιλογή διαμόρφωσης sshd_config(5), PermitTunnel, ελέγχει εάν ο διακομιστής υποστηρίζει αυτό, και σε ποιο επίπεδο (κίνηση επιπέδου 2 ή 3).

Το ακόλουθο παράδειγμα θα συνδέσει το δίκτυο πελάτη 10.0.50.0/24 με το απομακρυσμένο δίκτυο 10.0.99.0/24 χρησιμοποιώντας μια σύνδεση σημείο προς σημείο από 10.1.1.1 σε 10.1.1.2, με την προϋπόθεση ότι ο διακομιστής SSH που εκτελείται στην πύλη προς το απομακρυσμένο δίκτυο, στη διεύθυνση 192.168.1.15, το επιτρέπει.

Στον πελάτη:

# ssh -f -w 0:1 192.168.1.15 true
# ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
# route add 10.0.99.0/24 10.1.1.2

Στον διακομιστή:

# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
# route add 10.0.50.0/24 10.1.1.1

Η πρόσβαση πελάτη μπορεί να ρυθμιστεί λεπτομερέστερα μέσω του αρχείου /root/.ssh/authorized_keys (βλ. παρακάτω) και της επιλογής διακομιστή PermitRootLogin. Η ακόλουθη εγγραφή θα επέτρεπε συνδέσεις στη συσκευή tun(4) 1 από τον χρήστη «jane» και στη συσκευή tun 2 από τον χρήστη «john», εάν το PermitRootLogin έχει οριστεί σε «forced-commands-only»:

tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane
tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john

Δεδομένου ότι μια εγκατάσταση βάσει SSH συνεπάγεται μια αρκετά μεγάλη ποσότητα επιβάρυνσης, μπορεί να είναι πιο κατάλληλη για προσωρινές ρυθμίσεις, όπως για ασύρματα VPN. Τα πιο μόνιμα VPN παρέχονται καλύτερα από εργαλεία όπως τα ipsecctl(8) και isakmpd(8).

ΠΕΡΙΒΑΛΛΟΝ

Το ssh συνήθως ορίζει τις ακόλουθες μεταβλητές περιβάλλοντος:

DISPLAY Η μεταβλητή DISPLAY υποδεικνύει την τοποθεσία του διακομιστή X11. Ορίζεται αυτόματα από το ssh για να δείχνει σε μια τιμή της μορφής «hostname:n», όπου το «hostname» υποδεικνύει τον κεντρικό υπολογιστή όπου εκτελείται το shell και το 'n' είναι ένας ακέραιος αριθμός ≥

Το ssh χρησιμοποιεί αυτή την ειδική τιμή για να προωθεί τις συνδέσεις X11 μέσω του ασφαλούς καναλιού. Ο χρήστης δεν θα πρέπει κανονικά να ορίζει ρητά το DISPLAY, καθώς αυτό θα καταστήσει τη σύνδεση X11 ανασφαλής (και θα απαιτήσει από τον χρήστη να αντιγράψει χειροκίνητα τυχόν απαιτούμενα αρχεία cookie εξουσιοδότησης).


HOME                Ορίζεται στην διαδρομή του καταλόγου του χρήστη.

LOGNAME                 Συνώνυμο του USER· ορίζεται για συμβατότητα με συστήματα που χρησιμοποιούν αυτή τη μεταβλητή.

MAIL                Ορίζεται στην διαδρομή του φακέλου αλληλογραφίας του χρήστη.

PATH                Ορίζεται στο προεπιλεγμένο PATH, όπως καθορίζεται κατά τη μεταγλώττιση του ssh.

SSH_ASKPASS             Εάν το ssh χρειάζεται έναν κωδικό πρόσβασης, θα διαβάσει τον κωδικό πρόσβασης από το τρέχον τερματικό εάν εκτελέστηκε από ένα τερματικό. Εάν το ssh δεν έχει συσχετισμένο τερματικό, αλλά έχουν οριστεί οι μεταβλητές DISPLAY και SSH_ASKPASS, θα εκτελέσει το πρόγραμμα που καθορίζεται από το SSH_ASKPASS και θα ανοίξει ένα παράθυρο X11 για να διαβάσει τον κωδικό πρόσβασης. Αυτό είναι ιδιαίτερα χρήσιμο κατά την κλήση του ssh από ένα αρχείο .xsession ή παρόμοιο σενάριο. (Σημειώστε ότι σε ορισμένες μηχανές μπορεί να είναι απαραίτητο να ανακατευθυνθεί η είσοδος από το /dev/null για να λειτουργήσει αυτό).

SSH_ASKPASS_REQUIRE     Επιτρέπει περαιτέρω έλεγχο της χρήσης ενός προγράμματος askpass. Εάν αυτή η μεταβλητή έχει οριστεί σε “never”, τότε το ssh δεν θα επιχειρήσει ποτέ να χρησιμοποιήσει ένα. Εάν έχει οριστεί σε “prefer”, τότε το ssh θα προτιμήσει να χρησιμοποιήσει το πρόγραμμα askpass αντί για το TTY κατά την ζήτηση κωδικών πρόσβασης. Τέλος, εάν η μεταβλητή έχει οριστεί σε “force”, τότε το πρόγραμμα askpass θα χρησιμοποιηθεί για όλες τις εισαγωγές κωδικών πρόσβασης, ανεξάρτητα από το αν έχει οριστεί η μεταβλητή DISPLAY.

SSH_AUTH_SOCK           Καθορίζει την διαδρομή μιας υποδοχής Unix, η οποία χρησιμοποιείται για την επικοινωνία με τον διαχειριστή.

SSH_CONNECTION          Καθορίζει τις δύο πλευρές της σύνδεσης (πελάτη και διακομιστή). Η μεταβλητή περιέχει τέσσερις τιμές, χωρισμένες με κενά διαστήματα: IP διεύθυνση πελάτη, αριθμός θύρας πελάτη, IP διεύθυνση διακομιστή και αριθμός θύρας διακομιστή.

SSH_ORIGINAL_COMMAND    Αυτή η μεταβλητή περιέχει την αρχική γραμμή εντολών εάν εκτελείται μια αναγκαστική εντολή. Μπορεί να χρησιμοποιηθεί για την εξαγωγή των αρχικών ορισμάτων.

SSH_TTY                 Ορίζεται στο όνομα του tty (διαδρομή προς τη συσκευή) που σχετίζεται με το τρέχον κέλυφος ή εντολή. Εάν η τρέχουσα συνεδρία δεν έχει tty, αυτή η μεταβλητή δεν ορίζεται.

SSH_TUNNEL          Καθορίζεται προαιρετικά από το [sshd]({filename}../../sshd)(8) για να περιέχει τα ονόματα των διεπαφών που έχουν εκχωρηθεί εάν η προώθηση σήραγγας ζητήθηκε από τον πελάτη.

SSH_USER_AUTH           Καθορίζεται προαιρετικά από το [sshd]({filename}../../sshd)(8), αυτή η μεταβλητή μπορεί να περιέχει μια διαδρομή προς ένα αρχείο που καταγράφει τις μεθόδους ελέγχου ταυτότητας που χρησιμοποιήθηκαν με επιτυχία όταν η συνεδρία δημιουργήθηκε, συμπεριλαμβανομένων τυχόν δημόσιων κλειδιών που χρησιμοποιήθηκαν.

TZ                  Αυτή η μεταβλητή ορίζεται για να υποδεικνύει την τρέχουσα ζώνη ώρας εάν είχε οριστεί κατά την εκκίνηση του daemon (δηλαδή, το daemon μεταβιβάζει την τιμή στις νέες συνδέσεις).

USER                Ορίζεται στο όνομα του χρήστη που συνδέεται.

Επιπλέον, το ssh διαβάζει το \~/.ssh/environment και προσθέτει γραμμές της μορφής “VARNAME=value” στο περιβάλλον εάν το αρχείο υπάρχει και επιτρέπεται στους χρήστες να αλλάξουν το περιβάλλον τους. Για περισσότερες πληροφορίες, δείτε την επιλογή PermitUserEnvironment στο sshd_config(5).


ΑΡΧΕΙΑ

~/.rhosts
Αυτό το αρχείο χρησιμοποιείται για την αυθεντικοποίηση βάσει κεντρικού υπολογιστή (δείτε παραπάνω). Σε ορισμένα συστήματα, αυτό το αρχείο ενδέχεται να χρειαστεί να είναι αναγνώσιμο από όλους, εάν ο προσωπικός κατάλογος του χρήστη βρίσκεται σε διαμέρισμα NFS, επειδή το [sshd]({filename}../../sshd)(8) το διαβάζει ως root. Επιπλέον, αυτό το αρχείο πρέπει να ανήκει στον χρήστη και δεν πρέπει να έχει δικαιώματα εγγραφής για κανέναν άλλο. Τα συνιστώμενα δικαιώματα για τα περισσότερα συστήματα είναι ανάγνωση/εγγραφή για τον χρήστη και μη προσβάσιμο από άλλους.

~/.shosts
Αυτό το αρχείο χρησιμοποιείται ακριβώς με τον ίδιο τρόπο όπως το .rhosts, αλλά επιτρέπει την αυθεντικοποίηση βάσει κεντρικού υπολογιστή χωρίς να επιτρέπει τη σύνδεση με τα rlogin/rsh.

~/.ssh/
Αυτός ο κατάλογος είναι η προεπιλεγμένη θέση για όλες τις ρυθμίσεις και τις πληροφορίες αυθεντικοποίησης ειδικές για τον χρήστη. Δεν υπάρχει γενική απαίτηση να διατηρείται μυστικό όλο το περιεχόμενο αυτού του καταλόγου, αλλά τα συνιστώμενα δικαιώματα είναι ανάγνωση/εγγραφή/εκτέλεση για τον χρήστη και μη προσβάσιμο από άλλους.

~/.ssh/authorized_keys
Περιέχει τις δημόσιες κλείδες (ECDSA, Ed25519, RSA) που μπορούν να χρησιμοποιηθούν για τη σύνδεση ως αυτός ο χρήστης. Η μορφή αυτού του αρχείου περιγράφεται στη σελίδα εγχειριδίου [sshd]({filename}../../sshd)(8). Αυτό το αρχείο δεν είναι ιδιαίτερα ευαίσθητο, αλλά τα συνιστώμενα δικαιώματα είναι ανάγνωση/εγγραφή για τον χρήστη και μη προσβάσιμο από άλλους.

~/.ssh/config
Αυτό είναι το αρχείο διαμόρφωσης ανά χρήστη. Η μορφή αρχείου και οι επιλογές διαμόρφωσης περιγράφονται στο ssh_config(5). Λόγω της πιθανότητας κατάχρησης, αυτό το αρχείο πρέπει να έχει αυστηρά δικαιώματα: ανάγνωση/εγγραφή για τον χρήστη και μη εγγράψιμο από άλλους. Μπορεί να είναι εγγράψιμο από την ομάδα, υπό την προϋπόθεση ότι η ομάδα στην οποία ανήκει περιέχει μόνο τον χρήστη.

~/.ssh/environment
Περιέχει πρόσθετους ορισμούς για μεταβλητές περιβάλλοντος· δείτε το τμήμα «ΠΕΡΙΒΑΛΛΟΝ», παραπάνω.

~/.ssh/id_ecdsa
~/.ssh/id_ecdsa_sk
~/.ssh/id_ed25519
~/.ssh/id_ed25519_sk
~/.ssh/id_rsa
Αυτά τα αρχεία περιέχουν το ιδιωτικό κλειδί για την αυθεντικοποίηση. Αυτά τα αρχεία περιέχουν ευαίσθητα δεδομένα και θα πρέπει να είναι αναγνώσιμα από τον χρήστη, αλλά όχι προσβάσιμα από άλλους (ανάγνωση/εγγραφή/εκτέλεση). Το ssh θα αγνοήσει απλά ένα αρχείο ιδιωτικού κλειδιού εάν είναι προσβάσιμο από άλλους. Είναι δυνατό να καθοριστεί μια φράση πρόσβασης κατά τη δημιουργία του κλειδιού, η οποία θα χρησιμοποιηθεί για την κρυπτογράφηση του ευαίσθητου μέρους αυτού του αρχείου χρησιμοποιώντας το AES-128.

~/.ssh/id_ecdsa.pub
~/.ssh/id_ecdsa_sk.pub
~/.ssh/id_ed25519.pub
~/.ssh/id_ed25519_sk.pub
~/.ssh/id_rsa.pub
Αυτά τα αρχεία περιέχουν το δημόσιο κλειδί για την αυθεντικοποίηση. Αυτά τα αρχεία δεν είναι ευαίσθητα και μπορούν (αλλά δεν χρειάζεται) να είναι αναγνώσιμα από όλους.

~/.ssh/known_hosts
Περιέχει μια λίστα με τα κλειδιά κεντρικών υπολογιστών για όλους τους κεντρικούς υπολογιστές στους οποίους έχει συνδεθεί ο χρήστης, οι οποίοι δεν βρίσκονται ήδη στην συστημική λίστα των γνωστών κλειδιών κεντρικών υπολογιστών. Δείτε το [sshd]({filename}../../sshd)(8) για περισσότερες λεπτομέρειες σχετικά με τη μορφή αυτού του αρχείου.

~/.ssh/rc
Οι εντολές σε αυτό το αρχείο εκτελούνται από το ssh όταν ο χρήστης συνδέεται, ακριβώς πριν ξεκινήσει το κέλυφος (ή η εντολή) του χρήστη. Δείτε τη σελίδα εγχειριδίου [sshd]({filename}../../sshd)(8) για περισσότερες πληροφορίες.

/etc/hosts.equiv

Αυτό το αρχείο προορίζεται για έλεγχο ταυτότητας βάσει κεντρικού υπολογιστή (δείτε παραπάνω). Θα πρέπει να είναι εγγράψιμο μόνο από τον χρήστη root.

/etc/ssh/shosts.equiv

Αυτό το αρχείο χρησιμοποιείται ακριβώς με τον ίδιο τρόπο όπως το hosts.equiv, αλλά επιτρέπει τον έλεγχο ταυτότητας βάσει κεντρικού υπολογιστή χωρίς να επιτρέπει τη σύνδεση με rlogin/rsh.

/etc/ssh/ssh_config

Συστημικό αρχείο διαμόρφωσης. Η μορφή του αρχείου και οι επιλογές διαμόρφωσης περιγράφονται στην σελίδα ssh_config(5).

/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_rsa_key

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

/etc/ssh/ssh_known_hosts

Συστημική λίστα γνωστών κλειδιών κεντρικού υπολογιστή. Αυτό το αρχείο θα πρέπει να προετοιμάζεται από τον διαχειριστή του συστήματος, ώστε να περιέχει τα δημόσια κλειδιά κεντρικού υπολογιστή όλων των μηχανών του οργανισμού. Θα πρέπει να είναι αναγνώσιμο από όλους τους χρήστες. Δείτε sshd(8) για περισσότερες λεπτομέρειες σχετικά με τη μορφή αυτού του αρχείου.

/etc/ssh/sshrc

Οι εντολές σε αυτό το αρχείο εκτελούνται από το ssh όταν ο χρήστης συνδέεται, ακριβώς πριν ξεκινήσει το κέλυφος (ή η εντολή) του χρήστη. Δείτε τη σελίδα sshd(8) για περισσότερες πληροφορίες.

ΚΑΤΑΣΤΑΣΗ ΕΞΟΔΟΥ

Το ssh εξέρχεται με την κατάσταση εξόδου της απομακρυσμένης εντολής ή με 255 εάν προέκυψε ένα σφάλμα.

ΔΕΙΤΕ ΕΠΙΣΗΣ

scp(1), sftp(1), ssh-add(1), ssh-agent(1), ssh-argv0(1), ssh-keygen(1), ssh-keyscan(1), tun(4), ssh_config(5), ssh-keysign(8), sshd(8)

ΠΡΟΤΥΠΑ

S. Lehtinen και C. Lonvick, The Secure Shell (SSH) Protocol Assigned Numbers, RFC 4250, Ιανουάριος 200.

T. Ylonen και C. Lonvick, The Secure Shell (SSH) Protocol Architecture, RFC 4251, Ιανουάριος 2006.

T. Ylonen και C. Lonvick, The Secure Shell (SSH) Authentication Protocol, RFC 4252, Ιανουάριος 2006.

T. Ylonen και C. Lonvick, The Secure Shell (SSH) Transport Layer Protocol, RFC 4253, Ιανουάριος 200.

T. Ylonen και C. Lonvick, The Secure Shell (SSH) Connection Protocol, RFC 4254, Ιανουάριος 2006.

J. Schlyter και W. Griffin, Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints, RFC 4255, Ιανουάριος 2006.

F. Cusack και M. Forssen, Generic Message Exchange Authentication for the Secure Shell Protocol (SSH), RFC 4256, Ιανουάριος 2006.

J. Galbraith και P. Remaker, The Secure Shell (SSH) Session Channel Break Extension, RFC 4335, Ιανουάριος 2006.

M. Bellare, T. Kohno, και C. Namprempre, The Secure Shell (SSH) Transport Layer Encryption Modes, RFC 4344, Ιανουάριος 2006.

B. Harris, Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol, RFC 4345, Ιανουάριος 2006.

M. Friedl, N. Provos, και W. Simpson, Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, Μάρτιος 2006.

J. Galbraith και R. Thayer, The Secure Shell (SSH) Public Key File Format, RFC 4716, Νοέμβριος 200.

D. Stebila και J. Green, Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer, RFC 5656, Δεκέμβριος 2009.

A. Perrig και D. Song, Hash Visualization: Μια νέα τεχνική για τη βελτίωση της ασφάλειας στον πραγματικό κόσμο, 1999,
Διεθνές Συνέδριο για Κρυπτογραφικές Τεχνικές και Ηλεκτρονικό Εμπόριο (CrypTEC '99).

ΣΥΓΓΡΑΦΕΙΣ

Το OpenSSH είναι παράγωγο της αρχικής και δωρεάν έκδοσης ssh 1.2.12 του Tatu Ylonen. Οι Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt και Dug Song αφαίρεσαν πολλά σφάλματα, επανέφεραν νεότερες λειτουργίες και δημιούργησαν το OpenSSH. Ο Markus Friedl συνέβαλε στην υποστήριξη για τις εκδόσεις του πρωτοκόλλου SSH 1.5 και 2.0.