Koneksi SSH Fabric 2+ melalui Proksi SOCKS
Gunakan gateway ProxyCommand Fabric dengan konektor yang mendukung SOCKS sambil menjaga autentikasi SSH tetap melekat pada tujuan.
Perintah jarak jauh Fabric berjalan melalui SSH. Untuk membawa koneksi SSH itu melalui server SOCKS, berikan Fabric konektor yang berbicara SOCKS dan mengembalikan aliran byte tujuan.
API Connection yang diperkenalkan di Fabric 2 menerima string perintah sebagai gateway-nya. Fabric menggunakan string itu sebagai ProxyCommand. Dengan nc yang kompatibel dengan OpenBSD dan mendukung opsi proksinya, konfigurasinya dapat berupa:
from fabric import Connection
connection = Connection(
"app.example.net",
user="deploy",
gateway="nc -X 5 -x proxy.example.net:1080 %h %p",
)Contoh ini menggunakan port SSH biasa, 22. -X 5 pada konektor memilih SOCKS5, sedangkan -x menandai titik akhir proksi. Placeholder host dan port menyediakan tujuan SSH. Untuk tujuan SSH publik, titik akhir tanpa autentikasi dari daftar proksi SOCKS5 dapat mengisi alamat proksi jika mengizinkan tujuan dan port tersebut. Konfigurasikan perintah dengan opsi konektor sebenarnya yang terpasang di mesin; program bernama nc tidak semuanya menyediakan antarmuka yang sama.
Konektor berjalan secara lokal, di tempat Fabric berjalan. Server aplikasi tidak memerlukan pembantu itu hanya karena ia adalah tujuan SSH. Setelah aliran terbentuk, Fabric tetap melakukan negosiasi SSH dan mengautentikasi akun deploy di app.example.net. Autentikasi apa pun yang diminta server SOCKS menjadi milik konektor dan harus didukungnya.
Fabric juga dapat membaca ProxyCommand dari konfigurasi SSH. Itu bisa berguna ketika rute yang sama digunakan oleh beberapa alat SSH. Gunakan satu definisi gateway yang dimaksudkan untuk koneksi, alih-alih menggabungkan gateway bergaya perintah dengan gateway host lompat terpisah untuk tujuan yang sama.
Ketika perantara adalah server SSH
Objek Connection Fabric yang diberikan sebagai gateway berarti sesuatu yang berbeda: Fabric terhubung ke gateway SSH itu dan meminta kanal ke host akhir. Gunakan bentuk itu untuk host lompat SSH. Pendengar SOCKS bukan server SSH, jadi ia memerlukan konektor bergaya perintah di atas.
Pilihan transportasi ini juga memiliki batas yang jelas. Ia merutekan koneksi SSH Fabric. Perintah yang dijalankan di host jarak jauh yang kemudian mengunduh repositori atau paket membuat koneksi keluar baru dari host itu, menurut konfigurasi proksi program tersebut.