ssh http 代理,但无法在服务器中使用 sudo

ssh http 代理,但无法在服务器中使用 sudo

我可以通过 ssh 访问服务器,但我希望能够使用该服务器从我的计算机浏览网页。我不确定这是否称为通过 SSH 设置 HTTP 代理,但我无法修改,/etc/ssh/sshd_config因为我不是sudo

我非常确定一定有办法,因为我可以 ssh 到服务器并在wget那里下载文件,然后执行scp将其复制到我的电脑。我只是想知道是否有更简单的方法,这样我就可以使用本地浏览器,就像它是服务器中的浏览器一样(基本上,我试图下载 pdf 格式的科学文章)。

答案1

如果你的浏览器支持 SOCKS 代理,那么这很简单:

ssh workmachine -D 7099

现在配置您的本地计算机以使用 SOCKS 代理localhost:7099。(端口号任意数字都可以。)

如果您的浏览器不是支持 SOCKS 代理,那么您应该在远程机器上运行 HTTP 代理(如 tinyproxy)并建立到该机器的隧道:

# Remote machine: tinyproxy listening on 6077

# Your machine:
ssh workmachine -L 7077:localhost:6077

现在配置您的网络浏览器以使用 HTTP 代理localhost:7077

如果您已设置自己的隧道配置,~/.ssh/config包括别名workmachine以及公钥/私钥对,则此方法通常最容易实现,这样您无需输入密码即可进入。您也可以将隧道配置放入配置文件中(请参阅DynamicForwardLocalForward)。

相关内容