問題1.0
2要素認証のみをサポートするサーバーで作業しています(キーペア認証は無効になっています)。そのため、SFTPクライアントがファイルをアップロードするたびに、トークンを要求されます... 3分後、それはnot_very_nice UXになります。
ソリューション1.0
それで、SSH多重化について学び、1つのマスター接続を手動で(ターミナルから)開くことができ、他のすべてのssh接続を次のように多重化できます。
$ 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
$
次に、別の端末から、または別のソフトウェアによって:
$ ssh my.example.com
Last login: Wed Oct 1 16:34:45 2014 from 12.34.56.78
$
したがって、ミッションは完了し、2FAトークンを入力する必要はなくなりました。そして、パスワードはありません。それは、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
問題2.0(TLDR)
一部のソフトウェア(PyCharm IDEなど)は、独自のSSHライブラリ/バイナリなどを使用します。私が入力したもの~/.ssh/config
は何も影響しないことを意味します、AFAIK。
それが私の現在の問題です。そのようなソフトウェアを「だまして」既存のマスター接続を使用する方法はありますか?
アイデア:通常は別のポートを使用して接続するようにソフトウェアを構成できるので、既存のマスターへの着信接続を多重化するある種のトンネリングを設定できるかどうか疑問に思っていました。しかし、私のfooは私を失敗させました...
編集:
主な目的は、リモートのPythonインタプリタ/デバッガに接続することです。
編集2:
22と80以外のすべてのポートは閉じています。ただし、次のことは可能です。
remote$ ssh localhost:2222
(password or securekey login, both work)
remote$
ただし、2222はlocalhostからの接続に対してのみ開いており、管理者は「誰でも使用できる」と言って追加のポートを開きません。