validation用户(组)并使用SSH2密钥encryption服务器上的端口8078?

我想在使用SSH密钥运行Jenkins的服务器上对端口8078进行encryption和身份validation(我将根据需要传递我们的公钥或私钥),并保持8078不被SSH访问。 我现在只有几个开发人员使用机器。

问题:A /我需要防火墙才能完成此操作,以阻止非SSH访问8078? B /将通过端口22解密的请求,redirect到端口8078时,防火墙会看到? B当SSH服务器将端口22上的未encryption请求redirect到端口8078时,防火墙将看到什么IP /端口? C /这是对非Web服务器应用程序进行encryption和身份validation的一个很好的长期解决scheme吗? D / VPN解决scheme会更好吗?

A)一旦SSH服务器在服务器上的8078上进行侦听,其他应用程序就不能包含Jenkins。 B)我感到困惑:SSH不redirect未encryption的请求。 C)我假设你想要做到以下几点:

  1. 将Jenkinsconfiguration为在端口8078上运行,未encryption,但在本地主机IP 127.0.0.1上。 没有防火墙需要,因为从外面没有人可以连接该IP。 只有Jenkins不能绑定到127.0.0.1,你需要一个防火墙。
  2. 创build一个特殊的用户帐户作为一个telnet客户端到一个自定义shell127.0.0.1:8078。 你可以用一个非常简单的bash脚本来做到这一点。 授权所有公钥使用该帐户。
  3. 与特殊用户一样,通过端口22连接到SSH。 连接将打开特殊的telnetshell。

脚本看起来像这样:

#! /bin/bash telnet localhost 8078 

保存在/ usr / local / bin / jenkins-ssh和

 chmod a+x /usr/local/bin/jenkins-ssh useradd jenkins-ssh passwd jenkins-ssh (or don't, use pubkey only) chsh jenkins-ssh -s /usr/local/bin/jenkins-ssh 

D)VPN解决scheme的优势在于它可以用于多个服务。 但是你必须把这个服务绑定到一个内部的IP上,这个内部的IP只有在启动了VPN服务之后才能使用,从而使启动顺序变得复杂。