Skip to content

连接服务器

Linux 系统上有一个工具被业界广泛使用,它就是 ssh。它虽然不能远程控制桌面,但是可以远程登录服务器的命令行,并让服务器执行一些命令。由于 ssh 非常常用,现在很多Linux发行版都已经默认集成了这个命令。 目前使用最广的提供 ssh 命令的软件是 OpenSSH

开启ssh服务

为了让客户能顺利连接服务器,云服务器的sshd服务一般默认开启。如果你使用的是家里云,或者云服务器的sshd服务确实没有开启(比如你是只能通过服务商提供的VNC或者第三方远控软件连接的服务器,无法使用ssh),那么你可能需要先开启sshd服务才能连接到服务器。 在主流的使用 Systemd 的Linux发行版中,执行systemctl enable --now sshd命令即可开启 sshd 服务,如果这些命令都报错,证明 sshd 服务存在问题,你可以把报错复制粘贴到搜索引擎上查询怎么修复这个问题。 开启 sshd 服务后,你就可以连接到这台服务器了。

成功开启ssh服务后,如果要从公网连接,你还需要把ssh服务的端口22开放到公网。开放的方法与开放 Windows 的远程桌面端口的方式完全相同,但是协议只需要 TCP 即可。

::: warn

为了安全请不要在服务器上允许 root 用户登录 ssh!如果 ssh 被暴力破解的话会产生非常严重的后果!

最好可以禁用密码登录,仅允许密钥登录

关于配置你服务器的 ssh 使其更安全,可以查看Arch Linux Wiki 的这篇文章

:::

DANGER

配置直接在公网使用22端口连接服务器ssh会导致严重的安全性问题,详见如何抵御网络攻击

另外除非有明确需求,不要随意配置 UDP 协议端口映射,包括上文中提到的不需要UDP协议的 ssh,否则可能导致你的服务器被 DDoS!详见如何抵御网络攻击

连接ssh服务

Linux的ssh命令

就像 Windows 不用安装任何软件就能连接 Windows 的远程桌面一样, Linux 也内置了连接 ssh 的方式,直接执行 ssh 命令即可连接。它的语法如下:

shell
ssh <username>@<address> [-p port]

如何要指定端口,你需要指定端口参数。在一些操作系统上这个参数是-p,例如ssh [email protected] -p 48291,有一些工具上则是直接在后面输入端口。 例如 Xshell 是ssh [email protected] 48291。 你需要根据不同的工具的使用方式来确定ssh的命令格式。比如,你可以仅执行 ssh 命令(等价于 ssh --help),然后让 ssh 工具提示你如何使用当前工具的这个命令,如果需要更详细的说明可以输入命令 man ssh

在输入完这行命令后,服务器通常会要求你输入该用户的密码。

如果你不想手动输密码,可以使用密钥登录,这种方法更安全且通常更难以被破解,其步骤为:

  1. 使用 ssh-keygen 命令生成你的 ssh 密钥。

  2. 使用如 cat .ssh/id_xxxx.pub 命令来获取你生成的 ssh 公钥(此命令中xxxx的值通常取决于你生成密钥对时选择的算法)

  3. 在服务器对应用户的家目录下创建 ./ssh/authorized_keys,编辑它,将你的公钥粘贴进去,每个公钥独占一行

  4. 执行上面的命令,你会发现连接时不再需要密码而是直接弹出 shell

使用工具连接

其他操作系统也可以使用工具连接至服务器,在这里举出几个工具:

除了用 ssh 连接服务器之外,还有可以使用远程桌面。比如 VNC 和 RDP。服务器上一般不配备桌面环境和远程桌面环境,除非是非常需要,否则不建议在服务器上使用远程桌面。 关于桌面环境和远程桌面服务器的搭建,本文档不给予详细阐释,需要者可自行上网搜索相关内容。