如何为 ssh 动态端口转发添加身份验证?

如何为 ssh 动态端口转发添加身份验证?

我正在使用ssh客户端作为SOCKS服务器,通过运行在远程服务器上这个命令:

ssh -f2qTnND *:1080 some-server-user@localhost

这里只有一个问题:任何人可以连接到服务器并使用其互联网连接。

选项:

  • 用于iptables过滤对远程服务器但是客户端从各种非静态分配的地址连接到服务器,IP因此过滤器需要非常频繁地编辑,这很尴尬。
  • SOCKS在上安装服务器远程服务器(例如Dante)。如果没有其他更简单的方法,那么这是最后的选择。
  • 启动命令客户代替远程服务器。这里的问题是有些客户端无法运行Linux,设置隧道又很麻烦(例如Windows+ Putty)。最终用户设置本地SOCKS服务器也更加困难(例如记住命令、输入错误)。

有没有办法为SOCKS使用ssh客户端的服务器添加身份验证?

附加问题:如何在客户端与服务器之间添加加密(使用ssh客户端制作)?

答案1

你说在 Windows 中使用隧道很麻烦。试试Bitvise Tunnelier,使用起来非常方便。

OpenSSH 客户端的 socks 服务器中没有可用的用户身份验证。

附加问题:如何在客户端和服务器之间添加加密(使用 SSH 进行)?

SSH 已加密,由于您连接的是本地主机,因此对您来说毫无意义。您最好禁用加密以提高速度。socks 没有加密,如果有加密,则可能对大多数客户端不起作用。

答案2

SSH 是您的身份验证

如果你只希望本地主机访问绑定它,

ssh -D 本地主机:端口 用户@主机

这可确保只有本地程序可以访问该端口。vs *:port 这与 localhost 和您的所有地址都绑定。

如果你想减少 ssh 上的登录尝试次数,只需更改默认端口并使用 iptables 限制其速率,

我还建议设置 fail2banhttp://www.fail2ban.org/wiki/index.php/Main_Page

为什么要在上面添加额外的身份验证级别?如果你太懒,只需设置 ssh 密钥对和带有所需设置的 putty 快捷方式即可。

相关内容