問題1.0
2段階認証(キーペア認証を無効にする)のみをサポートするサーバーを使用しています。したがって、SFTP クライアントがファイルをアップロードしようとするたびにトークンを要求します。 3分後にはnot_very_nice UXになります。
ソリューション1.0
したがって、SSH多重化について学び、(端末で)手動でマスター接続を開くことができ、他のすべての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
、私が知っている限り、私が入力したものには影響しないことを意味します。
現在の質問は次のとおりです。既に存在するデフォルト接続を使用するようにこれらのソフトウェアを「欺く」方法はありますか?
1つの考え方:通常、接続に別のポートを使用するようにソフトウェアを設定できるので、着信接続を既存のマスターに多重化するトンネルの種類を設定できるかどうか疑問に思います。しかし、私の友人は私を失望させています...
編集する:
主な目的は、リモートPythonインタプリタ/デバッガに接続することです。
編集2:
22番と80番以外のすべてのポートは閉じています。ただし、次のことができます。
remote$ ssh localhost:2222
(password or securekey login, both work)
remote$
しかし、2222はlocalhostの接続にのみ開いており、管理者は他のポートを開かずに「誰でも使用できます」と言います。
答え1
非常に興味深い問題があります。
実際の解決策は、まずシステム管理者に助けを求めることです。
これがオプションでない場合、次善策はpyCharmのlibsshまたはそれが使用するすべてのもの(インターネット検索を行いましたが理解できません)を使用して「~/.ssh/config」を解析することです。
それが不可能なら、あなたは可能可能だったあなた自身のSSHデーモンを実行してくださいループバックアドレスからリモートホストを受信し、ローカル転送を使用して接続します。
権限のないSSHデーモンを設定します(次からコピーされます)。SF回答リンク):
$ pwd
/home/<USER>
$ mkdir -p etc var/run
$ cp /etc/sshd_config etc
$ vi etc/sshd_config
[Set `Port 2230']
[Set `HostKey /home/<USER>/etc/ssh_host_rsa_key']
[Set `UsePrivilegeSeparation no']
[Set `PidFile /home/<USER>/var/run/sshd.pid']
[:wq!]
$ ssh-keygen -t rsa -f /home/<USER>/etc/ssh_host_rsa_key -N ''
Generating public/private rsa key pair.
Your identification has been saved in /home/<USER>/etc/ssh_host_rsa_key.
Your public key has been saved in /home/<USER>/etc/ssh_host_rsa_key.pub.
The key fingerprint is:
02:5d:02:5d:e8:2e:c6:b9:4c:d9:93:6c:13:ef:5d:61 hein@vmbert2k8
$ /usr/sbin/sshd -f /home/<USER>/etc/sshd_config -D
次に、ローカルポートをそのポートに転送します(ここでは2faを使用してログインします)。
ssh -L 2230:localhost:2230 example_com_master
pyCharmをlocalhost:2230
。
これは可能性の低いイベントであるため、システム管理者はそれを認識できない可能性があります。
pyCharmはすでにOpenSSHを使用してsshを実装している可能性があります。もしそうなら、pyCharmに多重化サポートを追加することは私が提案した解決策よりはるかに簡単です。