我最近开始对 SSH 感兴趣,因此我尝试在我的 Linux 笔记本电脑上设置 SSH 服务器。我运行的是 moonOS,这是带有 Enlightenment WM 的 Ubuntu 版本。
首先,我运行了“sudo apt-get install openssh-server”。一切正常。现在我查看了路由器的设置,虽然没有看到明确称为“端口转发”的设置,但有一个复选框可以启用 SSH。我选中了此框并将端口设置为 22。之后我尝试了“ssh localhost”,连接正常。
现在我使用 www.whatismyip.com 检查了我的 IP 地址,然后在我的 WinXP 笔记本电脑上运行 PuTTY,输入 IP 地址、端口、选择 SSH 等。然后 PuTTY 抱怨“连接被拒绝”。好的。我在上网本上启动了 Jolicloud LiveUSB 并运行“ssh [我的用户名]@[我的 IP 地址]”。再次,连接被拒绝。
于是我跑到互联网上查找 OpenSSH 的文档。我胡乱猜测了一下,尝试在 moonOS 笔记本电脑上运行“sshd”,但它只是回复说“sshd re-exec 需要使用绝对路径执行”。
需要帮助吗?我不知道我做错了什么。
答案1
sshd re-exec 需要使用绝对路径执行”
对于该部分,使用完整路径运行它,例如
/usr/sbin/sshd
而不仅仅是sshd
答案2
您使用的是哪种类型的路由器?看来您为路由器启用了 SSH,而不是转发端口 22 以指向您的笔记本电脑。
您需要将 TCP 端口 22 的流量转发到您的笔记本电脑的 IP。
答案3
您应该注意的是,由于某种原因,许多路由器不允许您循环回内部地址。
这意味着如果两台计算机都在同一个网络上,您可能无法通过 ssh 连接到您的公共 IP 地址,也无法将端口转发到内部 IP。
我对此确实不太了解,但我上周遇到了这个问题,并且必须在本地网络之外的计算机上进行测试才能成功。
答案4
非常古老的线程,但我想提供一个真正优雅的答案。
sshd 已经在您的 $PATH 中,因此这里有一个快速重新执行它的方法。
$ `which sshd`
为什么这样做有效?反引号替换了 的输出which
,并且输出是 的绝对路径sshd
。