如何添加authentication到SSHdynamic端口转发?

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

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

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

选项:

  • 要使用iptables来过滤对远程服务器的访问,但客户端从各种非静态分配的IP地址连接到服务器,所以filter应该被非常频繁地编辑,这是非常尴尬的。
  • 远程服务器上安装SOCKS服务器(例如Dante )。 最终,如果没有其他更简单的方法,这是最后的select。
  • 客户端而不是远程服务器上启动该命令。 这里的问题是,一些客户端不能在LinuxLinux ,而且设置隧道(例如Windows + Putty )又很难。 最终用户设置本地SOCKS服务器也比较困难(例如记住命令,input错误)。

有没有办法将身份validation添加到使用ssh客户端的SOCKS服务器?

附加问题 :如何在客户端和服务器之间添加encryption(使用ssh客户端)?

你说的是在Windows中隧道很尴尬。 尝试Bitvise Tunnelier ,使用起来非常简单。

在OpenSSH客户端的socks服务器中没有可用的用户authentication。

奖金问题:如何在客户端和服务器之间添加encryption(使用SSH)?

SSH已经被encryption了,因为你连接到本地主机,所以你没有任何意义。 你最好禁用encryption速度更快。 袜子是没有encryption的,如果有的话,它可能不会为大多数客户的任何方式工作。

SSH是您的身份validation

如果你只想要本地主机访问绑定它,

ssh -D localhost:port user @ host

这确保只有本地程序才能访问端口。 vs *:port这是绑定到本地主机和所有你的地址。

如果你想减less你的SSHlogin尝试只是改变默认端口和速度限制它与iptables,

我也build议设置fail2ban http://www.fail2ban.org/wiki/index.php/Main_Page

为什么要在顶部添加一个额外的身份validation级别? 如果你太懒了,只需要设置ssh密钥对,并用所需的设置对腻子进行快捷方式。