问题1.0
我正在仅支持两因素验证(禁用密钥对验证)的服务器上工作。因此,每当我的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
都不会影响它,AFAIK。
那是我当前的问题:是否有办法“欺骗”此类软件以使用现有的主连接?
一个想法:因为您通常可以配置软件以使用不同的端口进行连接,所以我想知道是否有可能建立某种隧道,以将传入的连接复用到现有的主服务器上。但是我的foo使我失败了...
编辑:
主要目的是连接到远程Python解释器/调试器。
编辑2:
除22和80以外,所有端口均关闭。但是,可以这样做:
remote$ ssh localhost:2222
(password or securekey login, both work)
remote$
但是2222仅打开以用于来自localhost的连接,并且管理员不会打开任何其他端口,并说“任何人都可以使用它”。