Vấn đề 1.0
Tôi đang làm việc trên một máy chủ chỉ hỗ trợ auth hai yếu tố (khóa auth bị vô hiệu hóa). Vì vậy, mỗi khi khách hàng SFTP của tôi muốn tải lên một tệp, nó sẽ yêu cầu tôi mã thông báo ... sau 3 phút sẽ trở thành UX not_very_nice.
Giải pháp 1.0
Vì vậy, tôi đã tìm hiểu về ghép kênh SSH và bây giờ tôi có thể mở một kết nối chính theo cách thủ công (từ thiết bị đầu cuối) và tất cả các kết nối ssh khác có thể được ghép trên đầu, như vậy:
$ 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
$
Sau đó, từ một thiết bị đầu cuối khác, hoặc bởi một phần mềm khác:
$ ssh my.example.com
Last login: Wed Oct 1 16:34:45 2014 from 12.34.56.78
$
Vì vậy, nhiệm vụ đã hoàn thành, không còn nhập mã thông báo 2FA nữa. Và không có mật khẩu, cho vấn đề đó, 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
Vấn đề 2.0 (TLDR)
Một số phần mềm (ví dụ: PyCharm IDE) sử dụng thư viện / nhị phân SSH / bất cứ thứ gì của riêng họ ! Có nghĩa là không có gì tôi nhập vào ~/.ssh/config
sẽ ảnh hưởng đến nó, AFAIK.
Đó là vấn đề hiện tại của tôi: có cách nào để "lừa" phần mềm đó sử dụng kết nối chính đã tồn tại không?
Một ý tưởng: bởi vì bạn thường có thể cấu hình phần mềm để sử dụng một cổng khác để kết nối, tôi đã tự hỏi liệu có thể thiết lập một số loại đường hầm sẽ ghép các kết nối đến với chủ hiện có. Nhưng foo của tôi đã làm tôi thất bại ...
biên tập:
Mục đích chính là kết nối với trình thông dịch / trình gỡ lỗi Python từ xa.
chỉnh sửa 2:
Tất cả các cổng được đóng khác sau đó 22 và 80. Tuy nhiên, có thể thực hiện:
remote$ ssh localhost:2222
(password or securekey login, both work)
remote$
nhưng 2222 chỉ mở cho các kết nối từ localhost và quản trị viên sẽ không mở bất kỳ cổng bổ sung nào, nói rằng "bất kỳ ai cũng có thể sử dụng nó".