在系统启动时运行 SSH SOCKS5 代理

tim*_*sku 6 ssh proxy ssh-tunneling socks

我想设置一个 linux 服务器(在本例中为 Ubuntu Server 14.04),以便由另一个客户端上的软件用作 SOCKS5 代理。

现在,ssh -f -N -D 0.0.0.0:1080 localhost按照本指南的说明运行,这很容易。这完美地工作。

现在指南没有告诉我如何在系统启动时自动启动代理?只是输入这个命令rc.local是行不通的,因为我必须提供密码。生成 ssh 密钥ssh-keygen并将其放入/root/.ssh/也不起作用。

请注意,我并不真正了解整个 ssh 公钥是如何工作的,所以我的错误可能就在那里。当我的公钥应该用于本地客户端而不是远程客户端时,我必须做什么特别的事情?

tim*_*sku 1

我通过ssh-keygen以 root 用户(不是 sudo)运行、不指定密钥的任何名称(例如使用默认名称和位置)并且不提供任何密码短语来修复此问题。然后我确保所有文件的权限都/root/.ssh设置为 600,.ssh文件夹的权限设置为 700。

然后只需将问题中运行代理的命令添加到 /etc/rc.local 即可。据我了解,在这种情况下没有密码并不是安全风险,因为公钥和私钥仅驻留在本地计算机的根文件夹中。