Masalahnya 1.0
Saya sedang mengerjakan server yang hanya mendukung dua faktor auth (keypair auth dinonaktifkan). Jadi setiap kali klien SFTP saya ingin mengunggah file, ia meminta saya token ... setelah 3 menit itu menjadi UX not_very_nice.
Solusinya 1.0
Jadi saya belajar tentang multiplexing SSH dan sekarang saya dapat membuka satu koneksi master secara manual (dari terminal), dan semua koneksi ssh lainnya dapat di-multiplexing di atas, seperti:
$ ssh example_com_master
Verification code: (/me enters the token code)
Password: (/me enters my pass)
Welcome to Ubuntu 14.04 blah blah....
Last login: Wed Oct 1 11:24:15 2014 from 12.34.56.78
$
Kemudian, dari terminal lain, atau dengan perangkat lunak lain:
$ ssh my.example.com
Last login: Wed Oct 1 16:34:45 2014 from 12.34.56.78
$
Jadi, misi selesai, tidak ada lagi yang masuk token 2FA. Dan tidak ada kata sandi, dalam hal ini, SSH FTW!
~ / .ssh / config:
Host example_com_master
HostName my.example.com
User username
PubkeyAuthentication no
ControlMaster yes
ControlPath ~/.ssh/sockets/example_com
ControlPersist 10
Host my.example.com
HostName my.example.com
User username
PubkeyAuthentication no
ControlMaster no
ControlPath ~/.ssh/sockets/example_com
Masalah 2.0 (TLDR)
Beberapa perangkat lunak (misalnya PyCharm IDE) menggunakan perpustakaan / biner SSH mereka sendiri ! Berarti tidak ada yang saya ketikkan yang ~/.ssh/config
akan memengaruhinya, AFAIK.
Itu masalah saya saat ini: apakah ada cara untuk "mengelabui" perangkat lunak tersebut agar menggunakan koneksi master yang sudah ada?
Sebuah ide: karena Anda biasanya dapat mengkonfigurasi perangkat lunak untuk menggunakan port yang berbeda untuk terhubung, saya bertanya-tanya apakah mungkin untuk mengatur semacam tunneling yang akan multiplex koneksi masuk ke master yang ada. Tapi foo saya telah mengecewakan saya ...
edit:
Tujuan utamanya adalah untuk terhubung ke interpreter / debugger Python jarak jauh.
edit 2:
Semua port ditutup selain 22 dan 80. Namun, dimungkinkan untuk melakukan:
remote$ ssh localhost:2222
(password or securekey login, both work)
remote$
tetapi 2222 hanya terbuka untuk koneksi dari localhost, dan admin tidak akan membuka port tambahan, mengatakan "siapa pun bisa menggunakannya".