![在系统启动时运行 SSH SOCKS5 代理](https://linux22.com/image/40859/%E5%9C%A8%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E6%97%B6%E8%BF%90%E8%A1%8C%20SSH%20SOCKS5%20%E4%BB%A3%E7%90%86.png)
我想设置一个 Linux 服务器(在本例中为 Ubuntu Server 14.04),以供另一个客户端上的软件用作 SOCKS5 代理。
ssh -f -N -D 0.0.0.0:1080 localhost
现在按照这个解释运行就很容易了指导。这非常有效。
现在指南没有告诉我如何在系统启动时自动启动代理?仅输入此命令rc.local
是行不通的,因为我必须提供密码。使用生成 ssh 密钥ssh-keygen
并将其放入/root/.ssh/
也不起作用。
请注意,我并不真正了解整个 ssh 公钥是如何工作的,所以我的错误可能就在那里。当我的公钥应该用于本地客户端而不是远程客户端时,我需要做什么特别的事情?
答案1
我通过ssh-keygen
以 root 用户(不是 sudo)运行、不指定密钥的任何名称(例如使用默认名称和位置)并且不提供任何密码短语来解决此问题。然后我确保所有文件的权限/root/.ssh
都设置为 600,.ssh
文件夹的权限设置为 700。
然后只需将问题中运行代理的命令添加到 /etc/rc.local 即可。据我了解,在这种情况下没有密码短语并不存在安全风险,因为公钥和私钥仅驻留在本地计算机的根文件夹中。