Android

Χρησιμοποιώντας το αρχείο config του ssh

Unblock Mag 254 250 256 and Mag 322

Unblock Mag 254 250 256 and Mag 322

Πίνακας περιεχομένων:

Anonim

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

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

Προϋποθέσεις

Υποθέτουμε ότι χρησιμοποιείτε ένα σύστημα Linux ή MacOS με εγκατεστημένο πρόγραμμα-πελάτη OpenSSH.

Τοποθεσία αρχείου ρυθμίσεων SSH

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

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

mkdir -p ~/.ssh && chmod 700 ~/.ssh

Από προεπιλογή, το αρχείο διαμόρφωσης SSH ενδέχεται να μην υπάρχει, επομένως ίσως χρειαστεί να το δημιουργήσετε χρησιμοποιώντας την εντολή αφής:

touch ~/.ssh/config

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

chmod 600 ~/.ssh/config

Δομή και μοτίβα αρχείου ρυθμίσεων SSH

Το αρχείο ρύθμισης SSH έχει την ακόλουθη δομή:

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

Τα περιεχόμενα του αρχείου ρυθμίσεων πελάτη SSH είναι οργανωμένα σε stanzas (τμήματα). Κάθε σκηνή ξεκινά με την οδηγία Host και περιέχει συγκεκριμένες επιλογές SSH που χρησιμοποιούνται κατά τη δημιουργία σύνδεσης με τον απομακρυσμένο διακομιστή SSH.

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

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

  • * - Αντιστοιχεί σε μηδέν ή περισσότερους χαρακτήρες. Για παράδειγμα, το Host * αντιστοιχεί σε όλους τους κεντρικούς υπολογιστές, ενώ το 192.168.0.* Αντιστοιχεί στους κεντρικούς υπολογιστές στο 192.168.0.0/24 υποδίκτυο. ? - Αγώνες ακριβώς ενός χαρακτήρα. Το πρότυπο, Host 10.10.0.? αντιστοιχεί σε όλους τους κεντρικούς υπολογιστές στις 10.10.0. εύρος. ! - Όταν χρησιμοποιείται στην αρχή ενός μοτίβου, αναιρεί τον αγώνα. Για παράδειγμα, το Host 10.10.0.* !10.10.0.5 ταιριάζει με οποιονδήποτε κεντρικό υπολογιστή στο 10.10.0.0/24 υποδίκτυο, εκτός 10.10.0.5 .

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

Μπορείτε να βρείτε μια πλήρη λίστα των διαθέσιμων επιλογών ssh πληκτρολογώντας τον man ssh_config στον τερματικό σας ή μεταβαίνοντας στη σελίδα man ssh_config.

Το αρχείο ρυθμίσεων SSH διαβάζεται επίσης από άλλα προγράμματα, όπως scp , sftp και rsync .

Παράδειγμα αρχείου ρυθμίσεων SSH

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

Συνήθως, κατά τη σύνδεση σε απομακρυσμένο διακομιστή μέσω SSH, θα καθορίζετε το απομακρυσμένο όνομα χρήστη, όνομα κεντρικού υπολογιστή και θύρα. Για παράδειγμα, για να συνδεθείτε ως χρήστης με όνομα john σε έναν υπολογιστή που ονομάζεται dev.example.com στη θύρα 2322 από τη γραμμή εντολών, πληκτρολογήστε:

ssh [email protected] -p 2322

Για να συνδεθείτε στο διακομιστή χρησιμοποιώντας τις ίδιες επιλογές που παρέχονται στην παραπάνω εντολή απλώς πληκτρολογώντας ssh dev , τοποθετήστε τις ακόλουθες γραμμές στο "~/.ssh/config file:

~ /.ssh / config

Host dev HostName dev.example.com User john Port 2322

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

ssh dev

Κοινό αρχείο αρχείου ρυθμίσεων SSH

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

Ας πάρουμε το ακόλουθο παράδειγμα:

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • Όταν πληκτρολογείτε ssh targaryen , ο ssh client διαβάζει το αρχείο και εφαρμόζει τις επιλογές από τον πρώτο αγώνα, ο οποίος είναι ο Host targaryen . Στη συνέχεια ελέγχει τις επόμενες στροφές μία προς μία για ένα μοτίβο που ταιριάζει. Το επόμενο που ταιριάζει είναι το Host * !martell (που σημαίνει όλους τους κεντρικούς υπολογιστές εκτός από το martell ), και θα εφαρμόσει την επιλογή σύνδεσης από αυτήν την stanza. Ο τελευταίος ορισμός Host * συμφωνεί επίσης, αλλά ο ssh client θα πάρει μόνο την επιλογή Compression επειδή η επιλογή User έχει ήδη καθοριστεί στο Host targaryen stanza Host targaryen .

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

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    Κατά την εκτέλεση του ssh tyrell τα αντίστοιχα μοτίβα υποδοχής είναι: Host tyrell , Host *ell , Host * !martell και Host * . Οι επιλογές που χρησιμοποιούνται σε αυτή την περίπτωση είναι:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    Για όλες τις άλλες συνδέσεις, ο ssh client θα χρησιμοποιήσει τις επιλογές που καθορίζονται στις ενότητες Host * !martell και Host * .

Αντικατάσταση της επιλογής αρχείου καταγραφής SSH

Ο εξυπηρετητής ssh διαβάζει τη διαμόρφωσή του με την ακόλουθη σειρά προτεραιότητας:

  1. Επιλογές που καθορίζονται από τη γραμμή εντολών.Προσαρμογές που ορίζονται στις επιλογές ~/.ssh/config Που ορίζονται στο /etc/ssh/ssh_config .

Host dev HostName dev.example.com User john Port 2322

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

ssh -o "User=root" dev

Η επιλογή -F ( configfile ) σάς επιτρέπει να καθορίσετε ένα εναλλακτικό αρχείο ρυθμίσεων ανά χρήστη.

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

ssh -F /dev/null [email protected]

συμπέρασμα

Σας έχουμε δείξει πώς να διαμορφώσετε το αρχείο config του χρήστη ssh. Μπορεί επίσης να θέλετε να ρυθμίσετε έναν έλεγχο ταυτότητας βασισμένο σε κλειδί SSH και να συνδεθείτε στους διακομιστές Linux χωρίς να εισάγετε κωδικό πρόσβασης.

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

ssh τερματικό