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

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

🌍
sshd — Daemon του OpenSSH

ΣΥΝΤΑΞΗ

sshd    [-46DdeGiqTtV]    [-C   connection_spec]   [-c   host_certificate_file]   [-E   log_file]
[-f config_file] [-g login_grace_time] [-h host_key_file] [-o option] [-p port] [-u len]

ΠΕΡΙΓΡΑΦΗ

Το sshd (Daemon του OpenSSH) είναι το πρόγραμμα daemon για το ssh(1). Παρέχει ασφαλείς κρυπτογραφημένες επικοινωνίες μεταξύ δύο μη αξιόπιστων κεντρικών υπολογιστών μέσω ενός μη ασφαλούς δικτύου.

Το sshd ακούει για συνδέσεις από πελάτες. Συνήθως ξεκινά κατά την εκκίνηση από το /etc/init.d/ssh.

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

Το sshd μπορεί να διαμορφωθεί χρησιμοποιώντας επιλογές γραμμής εντολών ή ένα αρχείο διαμόρφωσης (από προεπιλογή
sshd_config(5)). Οι επιλογές γραμμής εντολών αντικαθιστούν τις τιμές που καθορίζονται στο αρχείο διαμόρφωσης. Το sshd
επαναδιαβάζει το αρχείο διαμόρφωσής του όταν λαμβάνει ένα σήμα hangup, SIGHUP, εκτελώντας τον εαυτό του με
το όνομα και τις επιλογές με τις οποίες ξεκίνησε, π.χ. /usr/sbin/sshd.

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

-4      Επιβάλλει στο sshd να χρησιμοποιεί μόνο διευθύνσεις IPv4.

-6      Επιβάλλει στο sshd να χρησιμοποιεί μόνο διευθύνσεις IPv6.

-C connection_spec

Καθορίζει τις παραμέτρους σύνδεσης που θα χρησιμοποιηθούν για την εκτεταμένη λειτουργία δοκιμής -T. Εάν παρέχεται, τυχόν εντολές Match στο αρχείο διαμόρφωσης που θα ίσχυαν εφαρμόζονται πριν από την εγγραφή της διαμόρφωσης στην τυπική έξοδο. Οι παράμετροι σύνδεσης παρέχονται ως ζεύγη λέξη-κλειδί=τιμή και μπορούν να παρέχονται με οποιαδήποτε σειρά, είτε με πολλαπλές επιλογές -C είτε ως μια λίστα διαχωρισμένη με κόμμα. Οι λέξεις-κλειδιά είναι "addr", "user", "host", "laddr", "lport" και "rdomain" και αντιστοιχούν στην διεύθυνση προέλευσης, τον χρήστη, το όνομα κεντρικού υπολογιστή που επιλύθηκε στην πηγή, την τοπική διεύθυνση, την τοπική θύρα και την περιοχή δρομολόγησης, αντίστοιχα. Επιπλέον, η σημαία "invalid-user" (η οποία δεν παίρνει όρισμα τιμής) μπορεί να καθοριστεί για να προσομοιωθεί μια σύνδεση από ένα μη αναγνωρισμένο όνομα χρήστη.

-c host_certificate_file

Καθορίζει μια διαδρομή προς ένα αρχείο πιστοποιητικού για να προσδιορίσει το sshd κατά τη διάρκεια της ανταλλαγής κλειδιών. Το αρχείο πιστοποιητικού πρέπει να ταιριάζει με ένα αρχείο κλειδιού κεντρικού υπολογιστή που καθορίζεται χρησιμοποιώντας την επιλογή -h ή την οδηγία διαμόρφωσης HostKey.

-D      Όταν καθοριστεί αυτή η επιλογή, το sshd δεν αποσπάται και δεν γίνεται daemon. Αυτό

επιτρέπει την εύκολη παρακολούθηση του sshd.

-d      Λειτουργία εντοπισμού σφαλμάτων. Ο διακομιστής στέλνει αναλυτικές πληροφορίες εντοπισμού σφαλμάτων στην τυπική έξοδο σφαλμάτων και δεν τίθεται σε κατάσταση αναμονής. Ο διακομιστής επίσης δεν θα εκτελέσει τη διαδικασία fork(2) και θα επεξεργαστεί μόνο μία

σύνδεση. Αυτή η επιλογή προορίζεται μόνο για εντοπισμό σφαλμάτων του διακομιστή. Πολλαπλές επιλογές -d αυξάνουν το επίπεδο εντοπισμού σφαλμάτων. Το μέγιστο είναι 3.


-E log_file
Προσθέτει καταγραφές εντοπισμού σφαλμάτων στο αρχείο log_file αντί για το αρχείο καταγραφής συστήματος.

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

-f config_file
Καθορίζει το όνομα του αρχείου διαμόρφωσης. Η προεπιλογή είναι /etc/ssh/sshd_config. Το sshd αρνείται να ξεκινήσει εάν δεν υπάρχει αρχείο διαμόρφωσης.

-G
Ανάλυση και εκτύπωση του αρχείου διαμόρφωσης. Ελέγχει την εγκυρότητα του αρχείου διαμόρφωσης, εξάγει την αποτελεσματική διαμόρφωση στην τυπική έξοδο και στη συνέχεια τερματίζει. Προαιρετικά, οι κανόνες Match μπορούν να εφαρμοστούν καθορίζοντας τις παραμέτρους σύνδεσης χρησιμοποιώντας μία ή περισσότερες επιλογές -C.

-g login_grace_time
Δίνει τον χρόνο χάριτος για τους πελάτες να αυθεντικοποιήσουν τον εαυτό τους (προεπιλογή 120 δευτερόλεπτα). Εάν ο πελάτης αποτύχει να αυθεντικοποιήσει τον χρήστη εντός αυτού του χρονικού διαστήματος, ο διακομιστής αποσυνδέεται και τερματίζει. Μια τιμή μηδέν υποδεικνύει ότι δεν υπάρχει όριο.

-h host_key_file
Καθορίζει ένα αρχείο από το οποίο διαβάζεται ένα κλειδί κεντρικού υπολογιστή. Αυτή η επιλογή πρέπει να δοθεί εάν το sshd εκτελείται χωρίς δικαιώματα root (καθώς τα κανονικά αρχεία κλειδιών κεντρικού υπολογιστή συνήθως δεν είναι αναγνώσιμα από κανέναν άλλο εκτός από το root). Η προεπιλογή είναι /etc/ssh/ssh_host_ecdsa_key, /etc/ssh/ssh_host_ed25519_key και /etc/ssh/ssh_host_rsa_key. Είναι δυνατό να υπάρχουν πολλαπλά αρχεία κλειδιών κεντρικού υπολογιστή για τους διάφορους αλγορίθμους κλειδιού κεντρικού υπολογιστή.

-i
Καθορίζει ότι το sshd εκτελείται από το inetd(8).

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

-p port
Καθορίζει τη θύρα στην οποία ακούει ο διακομιστής για συνδέσεις (προεπιλογή 22). Επιτρέπονται πολλαπλές επιλογές θυρών. Οι θύρες που καθορίζονται στο αρχείο διαμόρφωσης με την επιλογή Port παραβλέπονται όταν καθορίζεται μια θύρα γραμμής εντολών. Οι θύρες που καθορίζονται χρησιμοποιώντας την επιλογή ListenAddress αντικαθιστούν τις θύρες γραμμής εντολών.

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

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

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

-u len
Αυτή η επιλογή χρησιμοποιείται για τον καθορισμό του μεγέθους του πεδίου στη δομή utmp που περιέχει το όνομα κεντρικού υπολογιστή απομακρυσμένης σύνδεσης. Εάν το όνομα κεντρικού υπολογιστή που επιλύθηκε είναι μεγαλύτερο από το len, θα χρησιμοποιηθεί η δεκαδική τιμή με τελείες αντί αυτού. Αυτό επιτρέπει σε κεντρικούς υπολογιστές με πολύ μεγάλα ονόματα κεντρικού υπολογιστή που υπερχειλίζουν αυτό το πεδίο να εξακολουθούν να προσδιορίζονται μοναδικά. Η καθοδήγηση του -u0 υποδεικνύει ότι θα πρέπει να χρησιμοποιούνται μόνο δεκαδικές διευθύνσεις στο αρχείο utmp. Το -u0 μπορεί επίσης να χρησιμοποιηθεί για να αποτραπεί το sshd από την εκτέλεση αιτημάτων DNS, εκτός εάν ο μηχανισμός αυθεντικοποίησης ή η διαμόρφωση το απαιτούν. Οι μηχανισμοί αυθεντικοποίησης που ενδέχεται να απαιτούν DNS περιλαμβάνουν το HostbasedAuthentication και τη χρήση μιας επιλογής from="pattern-list" σε ένα αρχείο κλειδιού. Οι επιλογές διαμόρφωσης που απαιτούν DNS περιλαμβάνουν τη χρήση ενός μοτίβου USER@HOST στα AllowUsers ή DenyUsers.

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

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

Το SSH daemon του OpenSSH υποστηρίζει μόνο το πρωτόκολλο SSH 2. Κάθε κεντρικός υπολογιστής διαθέτει ένα κλειδί ειδικό για τον κεντρικό υπολογιστή, το οποίο χρησιμοποιείται για την αναγνώριση του κεντρικού υπολογιστή. Όταν ένας πελάτης συνδέεται, ο daemon ανταποκρίνεται με το δημόσιο κλειδί του κεντρικού υπολογιστή. Ο πελάτης συγκρίνει το κλειδί του κεντρικού υπολογιστή με τη δική του βάση δεδομένων για να επαληθεύσει ότι δεν έχει αλλάξει. Η ασφάλεια προς τα εμπρός παρέχεται μέσω μιας συμφωνίας κλειδιών Diffie-Hellman. Αυτή η συμφωνία κλειδιών έχει ως αποτέλεσμα ένα κοινό κλειδί συνεδρίας. Το υπόλοιπο της συνεδρίας κρυπτογραφείται χρησιμοποιώντας μια συμμετρική κρυπτογραφική αλγοριθμική συνάρτηση. Ο πελάτης επιλέγει τον αλγόριθμο κρυπτογράφησης που θα χρησιμοποιήσει από αυτούς που προσφέρει ο διακομιστής. Επιπλέον, η ακεραιότητα της συνεδρίας παρέχεται μέσω ενός κρυπτογραφικού κώδικα ελέγχου μηνυμάτων (MAC).

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

Ανεξάρτητα από τον τύπο αυθεντικοποίησης, ο λογαριασμός ελέγχεται για να διασφαλιστεί ότι είναι προσβάσιμος. Ένας λογαριασμός δεν είναι προσβάσιμος εάν είναι κλειδωμένος, αναφέρεται στο DenyUsers ή η ομάδα του αναφέρεται στο DenyGroups. Ο ορισμός ενός κλειδωμένου λογαριασμού εξαρτάται από το σύστημα. Ορισμένες πλατφόρμες έχουν τη δική τους βάση δεδομένων λογαριασμών (π.χ. AIX) και ορισμένες τροποποιούν το πεδίο passwd (το ‘LK’ στο Solaris και UnixWare, το ‘’ στο HP-UX, που περιέχει το ‘Nologin’ στο Tru64, μια αρχική συμβολοσειρά ‘LOCKED’ στο FreeBSD και μια αρχική συμβολοσειρά ‘!’ στις περισσότερες διανομές Linux). Εάν υπάρχει απαίτηση να απενεργοποιηθεί η αυθεντικοποίηση κωδικού πρόσβασης για τον λογαριασμό, ενώ εξακολουθεί να επιτρέπεται η χρήση δημόσιου κλειδιού, τότε το πεδίο passwd θα πρέπει να οριστεί σε κάτι διαφορετικό από αυτές τις τιμές (π.χ. ‘NP’ ή ‘NP*’).

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

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

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


ΔΙΑΔΙΚΑΣΙΑ ΣΥΝΔΕΔΗΣΗΣ

Όταν ένας χρήστης συνδεθεί με επιτυχία, το sshd εκτελεί τα εξής:

      Εάν η σύνδεση γίνεται σε ένα τερματικό (tty) και δεν έχει καθοριστεί εντολή, εκτυπώνει την τελευταία ώρα σύνδεσης
και το /etc/motd (εκτός εάν αυτό έχει αποτραπεί στο αρχείο διαμόρφωσης ή μέσω του ~/.hushlogin· δείτε την ενότητα «ΑΡΧΕΙΑ»).

      Εάν η σύνδεση γίνεται σε ένα τερματικό, καταγράφει την ώρα σύνδεσης.

      Ελέγχει το /etc/nologin· εάν υπάρχει, εκτυπώνει το περιεχόμενό του και τερματίζει (εκτός εάν ο χρήστης είναι ο root).

      Αλλάζει σε λειτουργία με κανονικά δικαιώματα χρήστη.

      Ρυθμίζει το βασικό περιβάλλον.

      Διαβάζει το αρχείο ~/.ssh/environment, εάν υπάρχει, και επιτρέπει στους χρήστες να αλλάξουν το περιβάλλον τους. Δείτε την επιλογή PermitUserEnvironment στο sshd_config(5).

      Αλλάζει στον κατάλογο αρχικής σελίδας του χρήστη.

      Εάν το αρχείο ~/.ssh/rc υπάρχει και η επιλογή PermitUserRC στο sshd_config(5) είναι ενεργοποιημένη, εκτελεί το αρχείο· διαφορετικά, εάν το /etc/ssh/sshrc υπάρχει, εκτελεί αυτό· διαφορετικά, εκτελεί το [xauth]({filename}../../xauth)(1). Τα αρχεία «rc» λαμβάνουν το πρωτόκολλο X11 και το cookie στην τυπική είσοδο. Δείτε την ενότητα «SSHRC», παρακάτω.

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

SSHRC

Εάν το αρχείο ~/.ssh/rc υπάρχει, το sh(1) το εκτελεί μετά τη διαβάσματα των αρχείων περιβάλλοντος, αλλά πριν ξεκινήσει το κέλυφος ή την εντολή του χρήστη. Δεν πρέπει να παράγει έξοδο στην τυπική έξοδο· πρέπει να χρησιμοποιεί την τυπική έξοδο σφάλματος. Εάν χρησιμοποιείται η προώθηση X11, θα λάβει το ζεύγος «πρωτόκολλο cookie» στην τυπική είσοδο (και το DISPLAY στο περιβάλλον του). Το σενάριο πρέπει να καλεί το xauth(1) επειδή το sshd δεν θα εκτελέσει αυτόματα το xauth για να προσθέσει τα cookie X11.

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

Αυτό το αρχείο πιθανότατα θα περιέχει κάποιο αρχικό κώδικα ακολουθούμενο από κάτι παρόμοιο με:

if read proto cookie && [ -n "$DISPLAY" ]; then
if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
# X11UseLocalhost=yes
echo add unix:`echo $DISPLAY |
cut -c11-` $proto $cookie
else
# X11UseLocalhost=no
echo add $DISPLAY $proto $cookie
fi | xauth -q fi

Εάν αυτό το αρχείο δεν υπάρχει, εκτελείται το /etc/ssh/sshrc και, εάν αυτό δεν υπάρχει, το xauth χρησιμοποιείται για να προσθέσει το cookie.

ΜΟΡΦΗ ΑΡΧΕΙΟΥ AUTHORIZED_KEYS

Το AuthorizedKeysFile καθορίζει τα αρχεία που περιέχουν τα δημόσια κλειδιά για την έλεγχο ταυτότητας δημόσιου κλειδιού· εάν αυτή η επιλογή δεν καθοριστεί, η προεπιλογή είναι τα ~/.ssh/authorized_keys και ~/.ssh/authorized_keys2.

Κάθε γραμμή του αρχείου περιέχει ένα κλειδί (οι κενές γραμμές και οι γραμμές που ξεκινούν με «#» αγνοούνται ως σχόλια). Τα δημόσια κλειδιά αποτελούνται από τα ακόλουθα πεδία που χωρίζονται με κενό: επιλογές, τύπος κλειδιού, δημόσιο κλειδί κωδικοποιημένο σε μορφή base64, σχόλιο. Το πεδίο επιλογών είναι προαιρετικό. Οι υποστηριζόμενοι τύποι κλειδιών είναι:

_
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
_
ssh-ed25519
ssh-rsa

Το πεδίο σχολίων δεν χρησιμοποιείται για τίποτα (αλλά μπορεί να είναι βολικό για τον χρήστη για να αναγνωρίσει το κλειδί).

Σημειώστε ότι οι γραμμές σε αυτό το αρχείο μπορούν να είναι αρκετές εκατοντάδες byte (λόγω του μεγέθους της κωδικοποίησης του δημόσιου κλειδιού) έως και ένα όριο 8 kilobyte, το οποίο επιτρέπει κλειδιά RSA έως και 16 kilobit. Δεν θέλετε να τα πληκτρολογήσετε· αντ' αυτού, αντιγράψτε τα αρχεία id_ecdsa.pub, id_ecdsa_sk.pub, id_ed25519.pub, id_ed25519_sk.pub ή id_rsa.pub και επεξεργαστείτε τα.

Το sshd επιβάλλει ένα ελάχιστο μέγεθος αρθρωτού κλειδιού RSA 1024 bit.

Οι επιλογές (εάν υπάρχουν) αποτελούνται από προδιαγραφές επιλογών που διαχωρίζονται με κόμμα. Δεν επιτρέπονται κενά, εκτός από μέσα σε διπλά εισαγωγικά. Οι ακόλουθες προδιαγραφές επιλογών υποστηρίζονται (σημειώστε ότι οι λέξεις-κλειδιά επιλογών δεν διακρίνουν πεζά-κεφαλαία):

agent-forwarding

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

cert-authority

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

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

command="εντολή"

Καθορίζει ότι η εντολή εκτελείται κάθε φορά που αυτό το κλειδί χρησιμοποιείται για έλεγχο ταυτότητας. Η εντολή που παρέχεται από τον χρήστη (εάν υπάρχει) αγνοείται. Η εντολή εκτελείται σε ένα pty εάν ο πελάτης ζητήσει ένα pty· διαφορετικά, εκτελείται χωρίς tty. Εάν απαιτείται ένα κανάλι καθαρής επικοινωνίας 8 bit, δεν πρέπει να ζητηθεί ένα pty ή θα πρέπει να καθοριστεί το no-pty. Μια εισαγωγική μπορεί να συμπεριληφθεί στην εντολή εισάγοντάς την με μια ανάστροφη κάθετο.

Αυτή η επιλογή μπορεί να είναι χρήσιμη για να περιοριστεί ορισμένα δημόσια κλειδιά ώστε να εκτελούν μόνο μια συγκεκριμένη λειτουργία. Ένα παράδειγμα θα μπορούσε να είναι ένα κλειδί που επιτρέπει απομακρυσμένα αντίγραφα ασφαλείας, αλλά τίποτα άλλο. Σημειώστε ότι ο πελάτης μπορεί να καθορίσει τη μεταφορά TCP και/ή X11 εκτός εάν αυτά απαγορεύονται ρητά, π.χ. χρησιμοποιώντας την επιλογή κλειδιού restrict.

Η εντολή που αρχικά παρέχεται από τον πελάτη είναι διαθέσιμη στην περιβαλλοντική μεταβλητή SSH_ORIGINAL_COMMAND. Σημειώστε ότι αυτή η επιλογή ισχύει για την εκτέλεση κελύφους, εντολής ή υποσυστήματος. Σημειώστε επίσης ότι αυτή η εντολή μπορεί να αντικατασταθεί από μια οδηγία ForceCommand στο sshd_config(5).

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

environment="ΟΝΟΜΑ=τιμή"

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

expiry-time="χρονική περίοδος"

Καθορίζει μια χρονική στιγμή μετά την οποία το κλειδί δεν θα γίνεται αποδεκτό. Η ώρα μπορεί να καθοριστεί ως ημερομηνία YYYYMMDD[Z] ή ώρα YYYYMMDDHHMM[SS][Z]. Οι ημερομηνίες και οι ώρες θα ερμηνεύονται στην τοπική ζώνη ώρας εκτός εάν συνοδεύονται από ένα χαρακτήρα Z, οπότε θα ερμηνεύονται στην ζώνη ώρας UTC.


from="pattern-list"

Καθορίζει ότι, εκτός από την αυθεντικοποίηση με δημόσιο κλειδί, είτε το κανονικό όνομα του απομακρυσμένου κεντρικού υπολογιστή είτε η διεύθυνση IP του πρέπει να περιέχονται στη διαχωρισμένη με κόμμα λίστα προτύπων. Δείτε την ενότητα PATTERNS στο ssh_config(5) για περισσότερες πληροφορίες σχετικά με τα πρότυπα.

Εκτός από την αντιστοίχιση χαρακτήρων που μπορεί να εφαρμοστεί σε ονόματα κεντρικών υπολογιστών ή διευθύνσεις, μια ενότητα "from" μπορεί να αντιστοιχίσει διευθύνσεις IP χρησιμοποιώντας τη σημειογραφία CIDR address/masklen.

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

no-agent-forwarding

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

no-port-forwarding

Απαγορεύει την προώθηση TCP όταν αυτό το κλειδί χρησιμοποιείται για αυθεντικοποίηση. Οποιεσδήποτε αιτήσεις προώθησης θυρών από τον πελάτη θα επιστρέψουν ένα σφάλμα. Αυτό μπορεί να χρησιμοποιηθεί, για παράδειγμα, σε συνδυασμό με την επιλογή command.

no-pty

Αποτρέπει την κατανομή tty (ένα αίτημα για κατανομή ενός tty θα αποτύχει).

no-user-rc

Απενεργοποιεί την εκτέλεση του ~/.ssh/rc.

no-X11-forwarding

Απαγορεύει την προώθηση X11 όταν αυτό το κλειδί χρησιμοποιείται για αυθεντικοποίηση. Οποιεσδήποτε αιτήσεις προώθησης X11 από τον πελάτη θα επιστρέψουν ένα σφάλμα.

permitlisten="[host:]port"

Περιορίζει την απομακρυσμένη προώθηση θυρών με την επιλογή ssh(1) -R έτσι ώστε να μπορεί να ακούει μόνο στη καθορισμένη φιλοξενούμενη (προαιρετικά) και θύρα. Οι διευθύνσεις IPv6 μπορούν να καθοριστούν περικλείοντας τη διεύθυνση σε αγκύλες. Μπορούν να εφαρμοστούν πολλαπλές επιλογές permitlisten διαχωρισμένες με κόμματα. Τα ονόματα κεντρικών υπολογιστών μπορούν να περιλαμβάνουν εναλλακτικά σύμβολα, όπως περιγράφεται στην ενότητα PATTERNS στο ssh_config(5). Μια προδιαγραφή θύρας με αστερίσκο (*) αντιστοιχεί σε οποιαδήποτε θύρα. Σημειώστε ότι η ρύθμιση της παραμέτρου GatewayPorts μπορεί να περιορίσει περαιτέρω τις διευθύνσεις ακρόασης. Σημειώστε ότι το ssh(1) θα στείλει ένα όνομα κεντρικού υπολογιστή "localhost" εάν δεν έχει καθοριστεί μια φιλοξενούμενη διεύθυνση ακρόασης όταν ζητήθηκε η προώθηση, και ότι αυτό το όνομα αντιμετωπίζεται διαφορετικά από τις ρητές διευθύνσεις localhost "127.0.0.1" και "::1".

permitopen="host:port"

Περιορίζει την τοπική προώθηση θυρών με την επιλογή ssh(1) -L έτσι ώστε να μπορεί να συνδέεται μόνο στον καθορισμένο κεντρικό υπολογιστή και τη θύρα. Οι διευθύνσεις IPv6 μπορούν να καθοριστούν περικλείοντας τη διεύθυνση σε αγκύλες. Μπορούν να εφαρμοστούν πολλαπλές επιλογές permitopen διαχωρισμένες με κόμματα. Δεν γίνεται αντιστοίχιση προτύπων ή αναζήτηση ονόματος στις καθορισμένες διευθύνσεις κεντρικών υπολογιστών, πρέπει να είναι κυριολεκτικά ονόματα κεντρικών υπολογιστών και/ή διευθύνσεις. Μια προδιαγραφή θύρας με αστερίσκο (*) αντιστοιχεί σε οποιαδήποτε θύρα.

port-forwarding

Ενεργοποιεί την προώθηση θυρών που είχε απενεργοποιηθεί προηγουμένως από την επιλογή restrict.


principals="principals"

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

pty Επιτρέπει την κατανομή tty, η οποία είχε προηγουμένως απενεργοποιηθεί από την επιλογή restrict.

no-touch-required

Δεν απαιτεί την επίδειξη παρουσίας χρήστη για υπογραφές που δημιουργούνται με αυτό το κλειδί. Αυτή η επιλογή έχει νόημα μόνο για τους αλγορίθμους FIDO ecdsa-sk και ed25519-sk.

verify-required

Απαιτεί ότι οι υπογραφές που δημιουργούνται με αυτό το κλειδί διαπιστώνουν ότι έχουν επαληθεύσει τον χρήστη, π.χ. μέσω ενός PIN. Αυτή η επιλογή έχει νόημα μόνο για τους αλγορίθμους FIDO ecdsa-sk και ed25519-sk.

restrict

Ενεργοποιεί όλους τους περιορισμούς, δηλαδή απενεργοποιεί τη μεταφορά θυρών, την εντολή και το X11, καθώς και την κατανομή PTY και την εκτέλεση του ~/.ssh/rc. Εάν προστεθούν μελλοντικές δυνατότητες περιορισμού στα αρχεία authorized_keys, θα συμπεριληφθούν σε αυτό το σύνολο.

tunnel="n"

Επιβάλλει μια συσκευή tun(4) στον διακομιστή. Χωρίς αυτήν την επιλογή, η επόμενη διαθέσιμη συσκευή θα χρησιμοποιηθεί εάν ο πελάτης ζητήσει μια σήραγγα.

user-rc

Ενεργοποιεί την εκτέλεση του ~/.ssh/rc, η οποία είχε προηγουμένως απενεργοποιηθεί από την επιλογή restrict.

X11-forwarding

Επιτρέπει τη μεταφορά X11, η οποία είχε προηγουμένως απενεργοποιηθεί από την επιλογή restrict.

Ένα παράδειγμα αρχείου authorized_keys:

# Σχόλια επιτρέπονται στην αρχή της γραμμής. Οι κενές γραμμές επιτρέπονται.
# Απλό κλειδί, χωρίς περιορισμούς
ssh-rsa ...
# Επιβεβλημένη εντολή, απενεργοποίηση PTY και όλων των μεταφορών
restrict,command="dump /home" ssh-rsa ...
# Περιορισμός των προορισμών μεταφοράς ssh -L
permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh-rsa ...
# Περιορισμός των ακροατών μεταφοράς ssh -R
permitlisten="localhost:8080",permitlisten="[::1]:22000" ssh-rsa ...
# Διαμόρφωση για μεταφορά σήραγγας
tunnel="0",command="sh /etc/netstart tun0" ssh-rsa ...
# Υπερκάλυψη του περιορισμού για να επιτραπεί η κατανομή PTY
restrict,pty,command="nethack" ssh-rsa ...
# Επιτρέψτε το κλειδί FIDO χωρίς να απαιτείται άγγιγμα
no-touch-required _ ...
# Απαιτεί επαλήθευση χρήστη (π.χ. PIN ή βιομετρικά στοιχεία) για το κλειδί FIDO
verify-required _ ...
# Εμπιστευτείτε το κλειδί CA, επιτρέψτε την αφή χωρίς άγγιγμα FIDO, εάν ζητηθεί στο πιστοποιητικό
cert-authority,no-touch-required,principals="user_a" ssh-rsa ...

ΜΟΡΦΗ ΑΡΧΕΙΟΥ SSH_KNOWN_HOSTS

Τα αρχεία /etc/ssh/ssh_known_hosts και ~/.ssh/known_hosts περιέχουν δημόσια κλειδιά διακομιστή για όλους τους γνωστούς διακομιστές. Το παγκόσμιο αρχείο θα πρέπει να προετοιμαστεί από τον διαχειριστή (προαιρετικά) και το αρχείο ανά χρήστη συντηρείται αυτόματα: κάθε φορά που ο χρήστης συνδέεται σε έναν άγνωστο διακομιστή, το κλειδί του προστίθεται στο αρχείο ανά χρήστη.

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

Ο δείκτης είναι προαιρετικός, αλλά εάν υπάρχει, τότε πρέπει να είναι ένα από τα "@cert-authority", για να υποδεικνύει ότι η γραμμή περιέχει ένα κλειδί αρχής πιστοποίησης (CA) ή "@revoked", για να υποδεικνύει ότι το κλειδί που περιέχεται στη γραμμή έχει ανακληθεί και δεν πρέπει ποτέ να γίνει αποδεκτό. Μόνο ένας δείκτης θα πρέπει να χρησιμοποιείται σε μια γραμμή κλειδιού.


Τα ονόματα κεντρικών υπολογιστών είναι μια λίστα προτύπων διαχωρισμένων με κόμμα ('*' και '?' λειτουργούν ως χαρακτήρες μπαλαντέρ). Κάθε πρότυπο στην λίστα αντιστοιχίζεται με το όνομα του κεντρικού υπολογιστή. Όταν το sshd αυθεντικοποιεί έναν πελάτη, όπως κατά τη χρήση της επιλογής HostbasedAuthentication, αυτό θα είναι το κανονικό όνομα κεντρικού υπολογιστή του πελάτη. Όταν το [ssh]({filename}../../ssh)(1) αυθεντικοποιεί έναν διακομιστή, αυτό θα είναι το όνομα κεντρικού υπολογιστή που παρέχεται από τον χρήστη, η τιμή της επιλογής [ssh]({filename}../../ssh)(1) HostkeyAlias εάν έχει καθοριστεί, ή το κανονικό όνομα κεντρικού υπολογιστή του διακομιστή εάν χρησιμοποιήθηκε η επιλογή [ssh]({filename}../../ssh)(1) CanonicalizeHostname.

Ένα πρότυπο μπορεί επίσης να προηγείται από το σύμβολο '!' για να υποδηλώσει άρνηση: εάν το όνομα κεντρικού υπολογιστή αντιστοιχεί σε ένα αρνημένο πρότυπο, δεν γίνεται αποδεκτό (από αυτή τη γραμμή) ακόμη και αν αντιστοιχεί σε ένα άλλο πρότυπο στην ίδια γραμμή. Ένα όνομα κεντρικού υπολογιστή ή μια διεύθυνση μπορεί προαιρετικά να περικλείεται σε αγκύλες '[' και ']' και στη συνέχεια να ακολουθείται από ':' και έναν μη τυπικό αριθμό θύρας.

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

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

Οι γραμμές που ξεκινούν με '#' και οι κενές γραμμές αγνοούνται ως σχόλια.

Όταν εκτελείται έλεγχος ταυτότητας κεντρικού υπολογιστή, ο έλεγχος ταυτότητας γίνεται αποδεκτός εάν οποιαδήποτε γραμμή που ταιριάζει έχει το σωστό κλειδί. είτε ένα που ταιριάζει ακριβώς είτε, εάν ο διακομιστής έχει παρουσιάσει ένα πιστοποιητικό για έλεγχο ταυτότητας, το κλειδί της αρχής πιστοποίησης που υπέγραψε το πιστοποιητικό. Για να γίνει ένα κλειδί αξιόπιστο ως αρχή πιστοποίησης, πρέπει να χρησιμοποιεί την ετικέτα "@cert-authority" που περιγράφεται παραπάνω.

Το αρχείο γνωστών κεντρικών υπολογιστών παρέχει επίσης μια δυνατότητα για να επισημαίνονται τα κλειδιά ως έχουν ανακληθεί, για παράδειγμα, όταν είναι γνωστό ότι το σχετικό ιδιωτικό κλειδί έχει κλαπεί. Τα κλειδιά που έχουν ανακληθεί καθορίζονται συμπεριλαμβάνοντας την ετικέτα "@revoked" στην αρχή της γραμμής του κλειδιού και δεν γίνονται ποτέ αποδεκτά για έλεγχο ταυτότητας ή ως αρχές πιστοποίησης, αλλά θα παράγουν μια προειδοποίηση από το [ssh]({filename}../../ssh)(1) όταν συναντηθούν.

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


Σημειώστε ότι οι γραμμές σε αυτά τα αρχεία είναι συνήθως εκατοντάδες χαρακτήρες μεγάλες και σίγουρα δεν θέλετε να πληκτρολογήσετε τα κλειδιά κεντρικού υπολογιστή με το χέρι. Αντίθετα, δημιουργήστε τα με ένα σενάριο, το ssh-keyscan(1) ή παίρνοντας, για παράδειγμα, το /etc/ssh/ssh_host_rsa_key.pub και προσθέτοντας τα ονόματα κεντρικού υπολογιστή στην αρχή. Το ssh-keygen(1) προσφέρει επίσης ορισμένες βασικές αυτόματες επεξεργασίες για το ~/.ssh/known_hosts, συμπεριλαμβανομένης της αφαίρεσης κεντρικών υπολογιστών που ταιριάζουν με ένα όνομα κεντρικού υπολογιστή και της μετατροπής όλων των ονομάτων κεντρικού υπολογιστή στις κατακερματισμένες αναπαραστάσεις τους.

Ένα παράδειγμα αρχείου ssh_known_hosts:

# Επιτρέπονται σχόλια στην αρχή της γραμμής
cvs.example.net,192.0.2.10 ssh-rsa AAAA1234.....=
# Ένα κατακερματισμένο όνομα κεντρικού υπολογιστή
|1|JfKTdBh7rNbXkVAQCRp4OQoPfmI=|USECr3SWf1JUPsms5AqfD5QfxkM= ssh-rsa
AAAA1234.....=
# Ένα ακυρωμένο κλειδί
@revoked * ssh-rsa AAAAB5W...
# Ένα κλειδί CA, αποδεκτό για οποιονδήποτε κεντρικό υπολογιστή στο *.mydomain.org ή *.mydomain.com
@cert-authority *.mydomain.org,*.mydomain.com ssh-rsa AAAAB5W...

ΑΡΧΕΙΑ

~/.hushlogin

Αυτό το αρχείο χρησιμοποιείται για την καταστολή της εκτύπωσης της τελευταίας ώρας σύνδεσης και του /etc/motd, εάν οι επιλογές PrintLastLog και PrintMotd, αντίστοιχα, είναι ενεργοποιημένες. Δεν καταστέλλει την εκτύπωση του πανό που καθορίζεται από την επιλογή Banner.

~/.rhosts

Αυτό το αρχείο χρησιμοποιείται για έλεγχο ταυτότητας βάσει κεντρικού υπολογιστή (δείτε το ssh(1) για περισσότερες πληροφορίες). Σε ορισμένα μηχανήματα, αυτό το αρχείο ενδέχεται να χρειάζεται να είναι αναγνώσιμο από όλους, εάν ο κατάλογος βάσης του χρήστη βρίσκεται σε διαμέρισμα NFS, επειδή το sshd το διαβάζει ως root. Επιπλέον, αυτό το αρχείο πρέπει να ανήκει στον χρήστη και δεν πρέπει να έχει δικαιώματα εγγραφής για κανέναν άλλον. Τα συνιστώμενα δικαιώματα για τα περισσότερα μηχανήματα είναι ανάγνωση/εγγραφή για τον χρήστη και μη προσβάσιμα από άλλους.

~/.shosts

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

~/.ssh/

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

~/.ssh/authorized_keys

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

Εάν αυτό το αρχείο, ο κατάλογος ~/.ssh ή ο κατάλογος βάσης του χρήστη είναι εγγράψιμα από άλλους χρήστες, τότε το αρχείο θα μπορούσε να τροποποιηθεί ή να αντικατασταθεί από μη εξουσιοδοτημένους χρήστες. Σε αυτήν την περίπτωση, το sshd δεν θα το επιτρέψει να χρησιμοποιηθεί, εκτός εάν η επιλογή StrictModes έχει οριστεί σε "όχι".

~/.ssh/environment

Αυτό το αρχείο διαβάζεται στο περιβάλλον κατά τη σύνδεση (εάν υπάρχει). Μπορεί να περιέχει μόνο κενές γραμμές, γραμμές σχολίων (που ξεκινούν με το «#») και γραμμές εκχώρησης της μορφής name=value. Το αρχείο πρέπει να είναι εγγράψιμο μόνο από τον χρήστη. δεν χρειάζεται να είναι αναγνώσιμο από κανέναν άλλο. Η επεξεργασία περιβάλλοντος είναι απενεργοποιημένη από προεπιλογή και ελέγχεται μέσω της επιλογής PermitUserEnvironment.


~/.ssh/known_hosts

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

~/.ssh/rc

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

/etc/hosts.allow
/etc/hosts.deny

Οι έλεγχοι πρόσβασης που θα πρέπει να επιβάλλονται από τα tcp-wrappers ορίζονται εδώ. Περισσότερες λεπτομέρειες περιγράφονται στο hosts_access(5).

/etc/hosts.equiv

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

/etc/ssh/moduli

Περιέχει τις ομάδες Diffie-Hellman που χρησιμοποιούνται για τη μέθοδο ανταλλαγής κλειδιών "Diffie-Hellman Group Exchange". Η μορφή του αρχείου περιγράφεται στο moduli(5). Εάν δεν βρεθούν χρήσιμες ομάδες σε αυτό το αρχείο, θα χρησιμοποιηθούν προκαθορισμένες εσωτερικές ομάδες.

/etc/motd

Δείτε motd(5).

/etc/nologin

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

/etc/ssh/shosts.equiv

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

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

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

/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key.pub

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

/etc/ssh/ssh_known_hosts

Συστημική λίστα γνωστών κλειδιών κεντρικού υπολογιστή. Αυτό το αρχείο θα πρέπει να προετοιμάζεται από τον διαχειριστή του συστήματος, ώστε να περιέχει τα δημόσια κλειδιά κεντρικού υπολογιστή όλων των μηχανών στον οργανισμό. Η μορφή αυτού του αρχείου περιγράφεται παραπάνω. Αυτό το αρχείο θα πρέπει να είναι εγγράψιμο μόνο από τον χρήστη root/τον ιδιοκτήτη και θα πρέπει να είναι αναγνώσιμο από όλους.

/etc/ssh/sshd_config

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

/etc/ssh/sshrc

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


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

/run/sshd.pid

Περιέχει το αναγνωριστικό διεργασίας (PID) του sshd που παρακολουθεί για συνδέσεις (εάν εκτελούνται ταυτόχρονα διάφορες διεργασίες για διαφορετικές θύρες, αυτό περιέχει το PID της τελευταίας που ξεκίνησε). Το περιεχόμενο αυτού του αρχείου δεν είναι ευαίσθητο και μπορεί να είναι αναγνώσιμο από όλους.

ΔΕΣ ΕΠΙΣΗΣ

scp(1), sftp(1), ssh(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), ssh-keyscan(1), chroot(2), hosts_access(5), moduli(5), sshd_config(5), inetd(8), sftp-server(8)

ΣΥΓΓΡΑΦΕΙΣ

Το 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. Οι Niels Provos και Markus Friedl συνέβαλαν στην υποστήριξη της απομόνωσης προνομίων.