Συνδέσεις SSH του Fabric 2+ μέσω διακομιστή μεσολάβησης SOCKS
Χρησιμοποιήστε την πύλη ProxyCommand του Fabric με έναν σύνδεσμο που υποστηρίζει SOCKS, κρατώντας τον έλεγχο ταυτότητας SSH συνδεδεμένο με τον προορισμό.
Οι απομακρυσμένες εντολές του Fabric ταξιδεύουν μέσω SSH. Για να μεταφέρετε αυτή τη σύνδεση SSH μέσω διακομιστή SOCKS, δώστε στο Fabric έναν σύνδεσμο που μιλά SOCKS και επιστρέφει τη ροή byte του προορισμού.
Το API Connection που εισήχθη στο Fabric 2 δέχεται μια συμβολοσειρά εντολής ως gateway. Το Fabric χρησιμοποιεί αυτή τη συμβολοσειρά ως ProxyCommand. Με ένα υπάρχον nc συμβατό με OpenBSD που υποστηρίζει τις επιλογές μεσολάβησης, η ρύθμιση μπορεί να είναι:
from fabric import Connection
connection = Connection(
"app.example.net",
user="deploy",
gateway="nc -X 5 -x proxy.example.net:1080 %h %p",
)Αυτό το παράδειγμα χρησιμοποιεί την κανονική θύρα SSH, 22. Το -X 5 του συνδέσμου επιλέγει SOCKS5, ενώ το -x προσδιορίζει το τελικό σημείο μεσολάβησης. Τα σύμβολα κράτησης θέσης κεντρικού υπολογιστή και θύρας παρέχουν τον προορισμό SSH. Για έναν δημόσιο προορισμό SSH, ένα μη πιστοποιημένο τελικό σημείο από τη λίστα μεσολαβητών SOCKS5 μπορεί να συμπληρώσει τη διεύθυνση μεσολάβησης αν επιτρέπει αυτόν τον προορισμό και τη θύρα. Ρυθμίστε την εντολή με τις επιλογές του πραγματικού συνδέσμου που είναι εγκατεστημένος στο μηχάνημα· τα προγράμματα με όνομα nc δεν εκθέτουν όλα την ίδια διεπαφή.
Ο σύνδεσμος εκτελείται τοπικά, εκεί όπου εκτελείται το Fabric. Ο διακομιστής εφαρμογής δεν χρειάζεται αυτόν τον βοηθό μόνο και μόνο επειδή είναι ο προορισμός SSH. Μόλις εδραιωθεί η ροή, το Fabric εκτελεί ακόμη διαπραγμάτευση SSH και πιστοποιεί τον λογαριασμό deploy στο app.example.net. Κάθε έλεγχος ταυτότητας που απαιτεί ο διακομιστής SOCKS ανήκει στον σύνδεσμο και πρέπει να υποστηρίζεται από αυτόν.
Το Fabric μπορεί επίσης να διαβάσει ένα ProxyCommand από τη ρύθμιση SSH. Αυτό μπορεί να είναι βολικό όταν την ίδια διαδρομή χρησιμοποιούν πολλά εργαλεία SSH. Χρησιμοποιήστε έναν προοριζόμενο ορισμό πύλης για τη σύνδεση, αντί να συνδυάζετε μια πύλη σε στυλ εντολής με ξεχωριστή πύλη κεντρικού υπολογιστή αναπήδησης για τον ίδιο προορισμό.
Όταν ο μεσολαβητής είναι διακομιστής SSH
Ένα αντικείμενο Connection του Fabric που παρέχεται ως gateway σημαίνει κάτι διαφορετικό: το Fabric συνδέεται με αυτή την πύλη SSH και ζητά ένα κανάλι προς τον τελικό κεντρικό υπολογιστή. Χρησιμοποιήστε αυτή τη μορφή για κεντρικό υπολογιστή αναπήδησης SSH. Ένας ακροατής SOCKS δεν είναι διακομιστής SSH, επομένως χρειάζεται τον σύνδεσμο σε στυλ εντολής παραπάνω.
Αυτή η επιλογή μεταφοράς έχει επίσης ένα σαφές όριο. Δρομολογεί τη σύνδεση SSH του Fabric. Μια εντολή που εκτελείται στον απομακρυσμένο κεντρικό υπολογιστή και αργότερα κατεβάζει ένα αποθετήριο ή πακέτο δημιουργεί μια νέα εξερχόμενη σύνδεση από αυτόν τον υπολογιστή, σύμφωνα με τη δική του ρύθμιση μεσολάβησης.