我在学校发现了 ssh 的乐趣。我可以连接到学校的计算机并编写[电子邮件保护],系统提示我输入密码,然后我就登录了。不我需要进行设置。
无论如何,我希望也可以通过这种方式连接到我的主计算机,也就是说,如果我在用笔记本电脑并且想在台式计算机上运行一些东西,我只需输入 ssh username@mydesktop 或其他内容,然后就可以进入了。据我所知,我需要设置一个 ssh 服务器。
我在 Google 上搜索了一些关于如何设置 ssh 服务器的文章,并在我的笔记本电脑上尝试了一下(目前),这是一篇这样的文章,这是另一个。至于第一个链接,除了 AllowUsers 部分,我已经完成了所述所有部分,这让我很困惑。用户名应该是什么样子的?我旁边有一台 MacBook,终端上显示 Petes-macbook-pro;那是用户名吗?另外,如果 Pete 想连接到我,他会写什么?我从来没有给出甚至定义过一个很好的“地址”,例如上面的 @siegbahn.it.uu.se。
如上所述,我一直在尝试寻找此问题的答案,但所有关于 ssh 的文章似乎都假设您已经完成了步骤 1-10,并且仅指导您完成步骤 11-20。
我所做的是:在 sshd_config 中 sudo apt-get install openssh-server,更改端口号并将 PermitRootLogin 设置为 no。
谢谢你的建议。
编辑:家里的连接是从墙上的电缆到路由器。我猜是光纤?我住在公寓里,但公寓不提供互联网。好吧,墙上的插孔是……
答案1
一开始不要太花哨。在摆弄设置、更改端口之前,我会确保它按预期工作。如果可以,把所有东西都放回原位,看看它是否能正常工作。我认为不需要任何用户配置就可以让基本功能正常工作。您不需要为特定用户启用 ssh。只需进行基本操作,然后稍后添加修改。也许您可以删除包(和设置)并重新安装。
在那之后:
- sshd 服务器进程是否正在运行。
在 Ubuntu 系统上,安装软件包通常会启动 ssh 进程来响应来自其他系统的请求。
检查 sshd 是否正在运行。在 shell 中运行
ps aux | grep ssh
我看到了这个,这意味着它正在运行:
root 1144 0.0 0.0 67824 5448 ? Ss Dec06 0:00 /usr/sbin/sshd -D
如果它没有运行,我又会感到惊讶,因为打包脚本通常会在 Ubuntu 中将其打开。您可以将其打开。步骤写在基本页面上。https://help.ubuntu.com/community/SSH/OpenSSH/Configuring
- 检查您是否可以从同一系统登录
打开终端,尝试通过 ssh 进入你自己的账户。尝试
ssh localhost
您也可以尝试“ssh[电子邮件保护]“也是如此。如果您无法从自己的系统执行此操作,则说明 ssh 服务未打开或配置不正确。
- 带上您的笔记本电脑,坐在有问题的服务器系统旁边。如果 ssh 在同一系统上工作,但在其他系统上却不工作,那么您就需要查找其他问题。如果您一直在摆弄防火墙等,那么您可能已经自作聪明了。我有时会在 /etc/hosts.deny 和 /etc/hosts.allow 中设置相互矛盾。
您可以在尝试从笔记本电脑登录时监控服务器上的系统日志。有时您可以发现问题。我认为要查看的正确文件是 /var/log/auth.log。这可能会给您一些提示。
您没有提到您可能拥有的防火墙设置,但我会完全关闭防火墙几分钟以测试 ssh 服务器。当然,您将其重新打开。
根据我的经验,运行 Ubunutu 比运行其他 Linux 稍微令人沮丧一点,所以请耐心等待。
完成这些之后,再去其他地方尝试。如果有问题
- 可能是您系统中的网络管理员阻止了访问。我这里的管理员变得非常严格,现在会过滤所有传入的 ssh 请求,无论哪个端口!如果您处于这种不愉快的情况,您需要让管理员为您设置 VPN。
或者可能是您自己的配置阻止了您的访问。有时您可以在跟踪 auth.log 或“dmesg”输出时看到这种情况。如果您到了那个阶段,您应该回信。我希望这里有一个更擅长 iptables 的人会帮助您。
总之,在你知道什么可以立即使用之前,不要开始更改设置。稍后,在它工作正常后,再调整设置。一次更改一件事。我总是打开 X11 转发。你很明智地更改了 /etc/sshd_config 中的 root 密码设置。更改端口似乎没有什么好处。
答案2
您需要了解的所有内容都可以在 Ubuntu wiki 上找到。
https://help.ubuntu.com/community/SSH/OpenSSH/Configuring
回答您的一些具体问题:
您需要将路由器中的端口转发到服务器,以允许从家庭网络外部进行访问。有人建议使用与标准端口不同的端口,以尽量减少机器人攻击的数量。您仍然可以使用服务器上的标准端口,这是推荐的做法。只需将路由器中的非标准端口转发到服务器中的标准端口即可。然后您可以通过ssh servername:nonstandardportnumber
我认为设置基于密钥的登录比允许用户 ID/密码登录更安全。我链接的 wiki 中涵盖了此主题。