与秘密的公共(客户)ssl证书的SSH通道

我处于无法无密码login的情况下,ssh和ssh服务器无法在默认端口以外的任何其他端口上运行。 所以,我select了stunnel来隧道隧道。 在我的个人电脑上,我在客户端模式下使用stunnel并使用它login服务器,如下所示: ssh -p 8888 user@localhost 。 问题是SSL客户端证书是公开的,所以任何人都可以很容易地设置SSL隧道到我的服务器。 如果有任何人查询https://myserver.com则表明openssh 2.0正在ssl端口上运行。 所以它已经成为一个最简单的方法,比在非默认端口上运行ssl服务器简单得多。 所以,我想知道是否有可能使私人SSL客户端证书,以便它不会被提供给任何人在我的服务器上进行https查询。 而且我应该可以像ssl私钥一样保密。

所以澄清:你想要从办公室networking,而不是从其他地方的密码。 但是,您需要能够从任何地方连接。

在我的networking上,从外部login时需要使用SSH密钥,但是从内部的另一台主机连接时可以使用密钥或密码。

这是如何工作的:

的/ etc / SSH / sshd_config中

 RSAAuthentication yes PasswordAuthentication no Match Address 192.168.0.* PasswordAuthentication yes 

如果将您的办公室子网replace为192.168.0。*,则用户将能够使用密码进行连接,但只能从办公室子网中进行连接。 但是,您将能够使用您的SSH密钥对从任何地方进行连接。

当一个ssh客户端连接到服务器时,会显示一个可以尝试的authentication机制列表。 通常列表是“公钥,密码”。 在这种情况下,当有人从外面连接时,他们只会出现“publickey”,所以他们的客户甚至不会尝试发送密码。 如果他们尝试使用SSH公钥以外的任何机制进行身份validation,则连接将立即由服务器closures。 所以没有可能的暴力破解密码。

Nixnotwin,这是一个真正的问题,但我完全困惑,你怎么认为你要求什么会帮助你。 让我重述这个问题,以便我们看看我是否正确地理解了它。

你有一个ssh服务器有很多弱用户密码。 您希望能够从异地远程login,但不希望让愚蠢的用户这样做,因为这会使所有这些弱用户密码暴露在暴力密码猜测中,而这种猜测一直在不受保护地进行sshd s。 如果你运行sshd ,它必须在22端口上运行。

我到目前为止如何?

因为您指的是“面向LAN的接口”和“WAN端”,所以在这台服务器上显然有两个NIC,因此有两个地址。 如何设置两个sshd ,都在端口22上运行。其中一个只绑定到内部NIC地址( ListenAddress 10.3.4.5 ),否则不受限制,以供所有那些不能select好密码的本地用户使用。 第二个sshd使用不同的configuration文件,该文件仅绑定到外部接口( ListenAddress 2.3.4.5 )的端口22,并且不允许基于密码的身份validation( PasswordAuthentication no ),或者只允许属于某个组的成员的用户login( AllowGroups nixnotwin )?

这些解决你的问题吗?