50% off 所有套餐限时优惠,起价 $2.48/mo
20 min left
Security & Networking

如何在 Linux 中使用 SSH 连接到远程服务器?【2023 版】

Allen By Allen 20 min read 更新于 15 天前
使用 SSH 连接到 Linux 中的远程服务器

本文专门介绍如何使用 SSH 连接到 Linux 中的远程服务器。我们还涵盖使用 PuTTY 连接到远程 Linux 服务器的方法。当然,PuTTY 不是您可以用于远程连接的唯一 SSH 客户端。查看更多 2022 年最佳 SSH 客户端对比(Windows 版本) 然后选择最适合你的方案。远程访问设备早已成为必需功能,我们很难想象没有它如何控制远程的计算机。

连接到远程机器的方式取决于你使用的操作系统,但最常用的两种协议是:

  1. 安全外壳 (SSH) 适用于基于 Linux 的设备
  2. 远程桌面协议 (RDP) 用于 Windows 设备

这两种协议都使用客户端和服务器应用程序来建立远程连接。通过这些工具,你可以访问和远程控制其他计算机、传输数据,以及完成你在物理上坐在计算机前能做的几乎所有事情。

什么是 SSH,它代表什么?

SSH (Secure Shell), also referred to as “Secure Socket Shell,” is a protocol that allows you to securely connect to a remote device or a server using a text-based interface. There are two most widely used protocols to connect to a remote machine: SSH and RDP. Creating an SSH connection needs both a client and a server component.

建立安全的 SSH 连接后,会启动一个 shell 会话,你可以在本地客户端输入命令来操作服务器。系统管理员和网络管理员通常使用这个协议来远程安全地访问设备。

RDP-vps 需要远程桌面吗?

可靠的高性能 RDP 服务器,正常运行时间达 99.95%。在美国、欧洲和亚洲的主要城市中随时随地使用你的桌面。

获取 RDP 服务器

SSH 如何工作?

要创建 SSH 连接,你需要两个组件:
the 客户端和对应的服务器端部分SSH 客户端是运行在你设备上的应用,用来连接远程计算机或服务器。客户端使用远程主机提供的数据来建立连接。验证凭据后,客户端会创建一条加密连接。

在服务器端,有一个部分叫做 SSH 守护进程 (SSHD) 该守护进程持续监听特定的 TCP/IP 端口,以接收潜在的客户端连接请求。客户端建立连接后,SSH 守护进程会回复其支持的软件和协议版本,双方随后交换身份识别数据。

如果接收到的凭证正确,SSH 将为相应的环境建立新会话。SSH 服务器与 SSH 客户端通信的 SSH 协议默认版本为 2。

Also Read:  2022 年最佳 Windows 的 SSH 客户端

What Is a Terminal?

如果你刚开始使用 Linux,首先要熟悉终端。可以把它看作一个命令快捷枢纽,是与 Linux 服务器通信的标准方式。

命令行看起来可能很难上手,但只要从基础开始就很简单,比如这些 每位用户都应该掌握的 15 个基础命令.

如果你打算用 PHP 或 Python 开发应用(或学习开发),终端就显得更加重要了。不同于 Windows 试图用 GUI 重新实现 Python 反而把事情搞复杂了,Linux 把 Python 和其他编程语言直接整合到终端里。所以,虽然你需要熟悉一些 在 Windows 上安装 Python 的步骤 结果只能得到一堆没用的东西。Linux 已经内置了,可以直接从命令行访问。

linux-vps Linux 主机服务简化版

想要更好的方式来托管网站和网络应用?正在开发新项目?或者只是不喜欢 Windows?这就是我们提供 Linux VPS 的原因。

获取你的 Linux VPS

What is SSL?

SSH 使用 SSL(安全套接字层)来保护网络浏览器和服务器之间传输的数据。SSL 对网络服务器和浏览器之间的连接进行加密,确保它们之间传递的所有数据都保持私密且不会受到攻击。换句话说,在通过 SSH 连接的远程服务器和本地计算机之间创建公钥和私钥是 SSL 安全协议的一部分。这层额外的保护特别有助于防御暴力破解密码攻击。

如何创建 SSH 连接?

由于创建 SSH 连接需要客户端和服务器组件,你需要确保它们分别安装在本地和远程计算机上。

OpenSSH 是一个开源 SSH 工具,常用于 Linux 发行版 并且相对容易使用。它需要访问服务器上的终端和你用来连接的设备。请注意,Ubuntu 默认情况下未安装 SSH 服务器。 在这份 SSH 远程连接指南的这一点,我们已经理解了 SSH 及其相关概念。现在让我们开始安装 OpenSSH 客户端。

第 1 步:安装 OpenSSH 客户端

安装 SSH 客户端之前,先确认它没有在你的系统上安装。许多 Linux 发行版已经预装了 SSH 客户端。

  1. 运行以下命令在你的设备上安装 OpenSSH:
sudo apt-get install openssh-client
  1. 在提示时输入超级用户密码。
  2. 按 Enter 键完成安装。

只要你有必要的权限访问主机名或 IP 地址,你现在就可以在任何安装了服务器端应用的计算机上使用 SSH。

第 2 步:安装 OpenSSH 服务器

要接受 SSH 连接,必须在计算机上安装 SSH 软件工具包的服务器端部分。为此,你需要按照以下步骤进行:

  1. 在你的服务器上打开终端。你可以搜索终端应用或点击 CTRL + ALT + T on your keyboard.
  2. 输入以下命令安装你的 SSH 服务器:
sudo apt-get install openssh-server
  1. 在提示时输入超级用户密码。
  2. Press Enter and Y 以在磁盘空间提示后继续安装。

完成上述步骤后,你将安装好所需的支持文件。然后你可以通过输入以下命令来检查 SSH 服务器是否在计算机上运行:

sudo service ssh status

如果 SSH 服务运行正常,终端输出应该看起来与此完全相同:

ssh status
ssh status

另一种方法是重新运行终端中的 ssh localhost 命令,以了解 OpenSSH 服务器是否正确安装并接受连接。第一次运行该命令时,响应看起来会类似于此屏幕:

密码保护的私钥输出
密码保护的私钥输出

Now, enter yes or y to continue.

太好了!你的服务器现在已准备好接受来自其他计算机的 SSH 远程连接请求,该计算机需使用 SSH 客户端。

如何使用 SSH 连接到 Linux 上的远程服务器?

现在你已在所需的每台设备上安装了 OpenSSH 客户端和服务器,你可以按照以下步骤创建到服务器的安全 SSH 远程连接:

  1. 在你的计算机上打开 SSH 终端并运行以下命令:

如果你本地设备上的用户名与将要连接的服务器上的用户名相同,你可以运行此命令:

ssh your_username@host_ip_address

如果你本地设备上的用户名与将要连接的服务器上的用户名相同,你可以运行此命令:

ssh host_ip_address

And press Enter.

  1. 输入你的密码并按 Enter 键。注意,输入密码时屏幕上不会有任何反馈。如果你粘贴密码,请确保它存储安全,不要保存在文本文件中。
  2. 首次连接到服务器时,系统会询问你是否要继续连接。只需输入 "yes” and press Enter。此消息仅在这一次出现,因为远程服务器在您的本地计算机上未被识别。
  3. ECDSA 指纹密钥已添加,你已连接到远程服务器。

如果要远程连接的设备与你在同一网络中,使用私有 IP 地址会更安全,无需使用公有 IP 地址。否则只需使用公有 IP 地址即可。现在你可以通过终端管理和控制远程设备了。如果无法连接到远程服务器,请检查远程设备的 IP 地址、用户名和密码是否正确。同时确保 SSH 守护进程监听的端口未被防火墙阻止或转发配置有误。

linux-vps Linux 主机服务简化版

想要更好的方式来托管网站和网络应用?正在开发新项目?或者只是不喜欢 Windows?这就是我们提供 Linux VPS 的原因。

获取你的 Linux VPS

深入了解 SSH 远程控制

现在你已经能够建立 SSH 远程连接,我们强烈建议采取以下步骤来加强远程访问 SSH 的安全性。使用 SSH 连接的默认设置会大大增加系统被入侵的风险,让你的远程访问变得不安全,系统也容易成为自动化攻击的目标。

以下是改进 SSH 安全性的一些建议,你可以通过编辑 sshd 配置文件来应用这些建议:

  • 修改 SSH 守护进程监听的默认 TCP 端口,将其从 22 改为更高的端口号,比如 245976。避免使用容易被猜测的端口号,比如 222、2222 或 22222。
  • 使用 SSH 密钥对进行无密码 SSH 登录认证。密钥对更加安全,让你无需密码即可登录,提供更快、更便捷的登录方式。
  • 禁用服务器上的密码登录。如果密码被破解,禁用此功能可以防止攻击者用它登入你的服务器。执行此操作前,务必确保密钥对身份验证工作正常。
  • 禁用服务器的 root 账户访问权限,改用普通账户,需要时用 su 命令切换到 root 用户。

 现在我们已经充分了解 SSH 远程连接以及如何远程访问 SSH。本文多次提到 PuTTy,如果你对 PuTTy 不熟悉,可能会有些疑问。除了提供 SSH 远程连接指南,我们还会为你介绍 PuTTy 的基本用法,并展示如何用它连接到 Linux 服务器。

What Is PuTTY?

PuTTY 是一款流行的终端模拟器,不受操作系统限制。PuTTY 免费开源,因此在开发者中很受欢迎,为运行任何受支持协议的远程计算机提供文本用户界面 including SSH 和 Telnet.

[su_button url="https://www.putty.org/" target="blank" style="soft" size="5″]下载 Putty[/su_button]

Note: PuTTY 是免费下载的软件,可以从 Windows 系统方便地访问 Unix shell 环境。与 Unix 不同,Windows 没有预装 SSH 服务器或客户端。因此需要用网络文件传输程序来支持多种协议,包括 Telnet 客户端。

Also Read: 在 Windows 10 中生成 SSH 密钥

如何在 Ubuntu Linux 上下载并安装 PuTTY?

PuTTY 图形化终端应用在大多数Linux发行版中默认不预装。不过,你可以在任何Linux设备上通过终端轻松安装PuTTY。

如果还没安装 PuTTY,请访问 Download PuTTY 页面,然后从页面的 Package Files 部分下载 Linux 安装程序。

对于 Linux 用户来说,好消息是 PuTTY 在 Ubuntu 宇宙存储库中可用。要在 Linux Ubuntu 上安装 PuTTY,你需要先确保启用了宇宙存储库。使用这个命令:

sudo add-apt-repository universe

启用 universe 存储库后,使用以下命令更新 Ubuntu:

sudo apt update

然后用这个命令安装 PuTTY:

sudo apt install putty

PuTTY 安装完成后,你可以从菜单中找到并启动它。Linux 版本和 Windows 版本的界面基本相同,所以你可以轻松找到新增和变更的设置。

如何使用 PuTTY 连接到 Linux 服务器?

如果要在安装 PuTTY 后使用它连接到 Linux 服务器,请按以下步骤操作:

第 1 步:配置 PuTTY

启动 PuTTY 后,主会话配置屏幕将出现。首先输入 Host Name (或服务器的 IP 地址)你要连接的服务器。

默认端口会设置为 22,这是大多数服务器上 SSH 的标准端口。这是个安全隐患,因为黑客知道默认会攻击这个端口。你应该 按照以下说明更改 SSH 端口 然后在 PuTTY 中修改这个数字。确保 Connection type 设置为 SSH。

如果你不想用私钥连接服务器,也不打算保存配置供以后使用,点击打开即可建立 SSH 连接。系统会用你的账户密码进行身份验证。

如果这是你首次连接到服务器,PuTTY 会显示一条 Security Warning 告诉您此服务器在注册表中没有密钥。首次连接时这是正常的。

使用 SSH 连接到远程服务器

连接成功后,系统会要求你输入密码。输入后,你就连接到了服务器的 shell。

Also Read : 在 VPS 上安装 MikroTik CHR(使用 PuTTY)

第 2 步:保存 PuTTY 配置供下次使用 

PuTTY 允许你保存连接到服务器的配置,这样就无需每次都重新输入所有信息。填完所有必要字段准备连接时,确保你在上述主会话配置界面。

您可以看到服务器的主机名和端口号。在下方文本框中输入您保存的 SSH 会话配置的名称 Saved Sessions and press Save.

如何在 Linux 上设置 SSH 公钥认证?

PuTTY 也可以配置为使用 SSH 密钥。SSH 密钥是更安全、有时也更便捷的身份验证方式。你可以用 PuTTY 本身生成它们。以下是我们的 关于在 Windows 上使用 PuTTY 生成 SSH 密钥的指南。您可以用它快速增强 SSH 的安全性。

按照以下步骤在 Linux(或 macOS)计算机上通过 SSH 设置公钥认证:

第 1 步:生成密钥对

首先,登录将用于访问远程主机的计算机,然后在命令行中使用命令 SSH 通过 RSA 算法生成密钥对。要生成 RSA 密钥,请在命令行中输入以下内容,然后按 Enter:

ssh-keygen -t rsa

第 2 步:输入文件名和密码

你需要指定一个文件名来保存密钥对,并设置密码保护你的私钥。如果想使用默认的文件名和位置,按 Enter 或 Return 键即可,无需输入文件名。或者,你可以在提示符下输入文件名(例如 My_ssh_key)然后按 Enter 或 Return 键。注意,许多远程主机被配置为只接受默认文件名和路径的私钥。因此,你必须在 SSH 命令行或 SSH 客户端配置文件(~/.ssh/config)中明确指定密钥的位置。

输入至少五个字符的密码,然后按 Enter 或 Return 键。如果不输入密码直接按 Enter,系统会为你生成私钥 不需要密码保护.

第 3 步:复制公钥

 使用 SFTP 或 SCP 将公钥文件复制到远程系统上的账户。

第 4 步:输入账户凭证

系统现在会要求你输入账户密码。你的公钥将被复制到主目录中,并在远程系统上保持相同的文件名。

第 5 步:登录到远程系统

使用您的账户用户名和密码登录远程系统

第 6 步:在你的账户中创建必要的文件

如果远程系统上的账户还没有 ~/.ssh/authorized_keys 文件,请执行以下命令创建它:

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

第 7 步:将公钥文件的内容添加到 authorized-keys 文件

密码保护的私钥输出
密码保护的私钥输出

在远程系统上,使用以下命令将你的公钥文件(例如 ~/id_rsa.pub)的内容添加到 ~/.ssh/authorized_keys 文件的新行中:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

你可能需要检查 ~/.ssh/authorized_keys 文件的内容,确保你的公钥已正确添加。使用以下命令:

more ~/.ssh/authorized_keys

第 8 步:删除公钥文件

现在你可以安全地从远程系统上的账户中删除公钥文件,使用以下命令行代码:

rm ~/id_rsa.pub

或者,如果你想在远程系统上保留公钥的副本,可以通过以下命令将其移至你的 .ssh 目录:

mv ~/id_rsa.pub ~/.ssh/

第 9 步:将公钥添加到其他系统(可选)

在 SSH 公钥认证设置的这个阶段,你可以重复这些步骤,将公钥添加到其他远程系统。这样你就可以从保存私钥的计算机使用 SSH 公钥认证访问这些系统。

第 10 步:将 SSH 连接到远程系统上的你的账户

现在,您应该能够利用 SSH 远程连接的优势,使用远程系统上的账户进行连接,该账户包含您的私钥。如果您的私钥受密码保护,远程系统会要求您输入密码或通行短语(如下图所示)。请注意,您的私钥密码或通行短语不会被发送到远程系统。

密码保护的私钥输出
密码保护的私钥输出

如果您的私钥未受密码保护,远程系统将直接将您带到主目录的命令行,无需询问密码或通行码,您会看到类似以下的输出:

导出未加密的私钥
导出未加密的私钥

Click the Open 选项卡,输入密码,然后连接。

除了 SSH 远程连接外,还有很多远程桌面工具可以让你从远处控制系统。我们来简单看看这些工具。

Also Read: SSH SOCKS5 代理 - 你需要知道的一切

重要的远程桌面标准

VNC 和 RDP 是两种远程桌面协议,两者的目标相似,但实现方式不同。

What Is VNC?

VNC(虚拟网络计算)有时会被误认为是 VPN(虚拟专用网络)。两者都能在点对点网络环境中工作,支持远程访问计算机。但本质上它们是不同的。 

VNC 通过桌面共享系统提供完整的设备访问权限,让你能够远程完全控制你的机器。远程桌面功能为各类用户提高工作效率,包括个人开发者、团队和 IT 运维人员。

另一方面,VPN 提供的是对网络的远程访问,而不是对系统本身的访问。这意味着你只能访问共享数据和设备,比如工作场所里的共享打印机。

通过 SSH 隧道传输 VNC

如果你使用虚拟网络计算 (VNC) 协议连接到远程桌面,连接将不安全。某些 VNC 客户端仅在初始登录点提供保护,之后的连接缺乏加密。你可以通过 Safe Shell (SSH) 隧道来传输 VNC 连接,解决这个问题。SSH 隧道为 VNC 提供安全连接,即使通常的 VNC 端口(端口 5901)被阻止,你也能使用 VNC 连接。

某些企业网络会出于额外安全考虑而阻止标准端口(如端口 5901)。通过 SSH 隧道传输 VNC 可以绕过这一限制。

What Is RDP?

RDP (远程桌面协议) 是由微软开发的网络通信协议,允许用户远程连接到另一台设备。远程桌面协议是 T.120 协议(标准协议)的扩展,属于国际电信联盟 (ITU) 的一部分。

RDP-vps 需要远程桌面吗?

可靠的高性能 RDP 服务器,正常运行时间达 99.95%。在美国、欧洲和亚洲的主要城市中随时随地使用你的桌面。

获取 RDP 服务器

最后,SSH 远程连接

要在 Linux 中创建 SSH 远程连接并用它连接服务器,你需要客户端和相应的服务器端部分作为两个组件。本指南文章说明了如何远程访问 SSH 并利用其优势。我们还很自豪能提供多种 Linux VPS 方案 让你充分利用其强大功能。Cloudzy 致力于为你提供卓越的 Linux VPS 解决方案,确保你选择的服务具有优异的安全性和性能,为你带来非凡的托管体验。

FAQ

 

What is SSH?

SSH 是一种用于远程服务器连接安全的协议。ssh 命令使用此协议在客户端和主机之间以加密形式传输数据。

如何设置 SSH 密钥?

  1. 生成 SSH 密钥
  2. 为您的 SSH 密钥命名
  3. 输入密码(可选)
  4. 将公钥移到远程系统
  5. 测试你的连接。

SSH 密钥对是什么?

每个 SSH 密钥对包含两个密钥:公钥和私钥。任何人都可以使用公钥的副本来加密数据,但只有持有对应私钥的人才能读取这些数据。

SSH 私钥在哪里?

If you use the default name, your private key will be stored in “/root/. ssh/id_rsa”.

Share

博客更新

Keep reading.

MikroTik L2TP VPN 指南的 Cloudzy 标题图像,展示笔记本电脑通过发光的蓝色和金色数字隧道连接到服务器机架,并配有盾牌图标。
Security & Networking

MikroTik L2TP VPN 设置(含 IPsec):RouterOS 指南(2026)

在这个 MikroTik L2TP VPN 设置中,L2TP 处理隧道,IPsec 处理加密和完整性验证。将两者结合使用可以获得原生客户端兼容性,无需第三方工具。

Rexa CyrusRexa Cyrus 9 min read
终端窗口显示 SSH 警告信息,提示远程主机标识已更改。深蓝绿色背景上显示修复指南标题和 Cloudzy 品牌标识。
Security & Networking

警告:远程主机标识已更改及修复方法

SSH 是一种安全网络协议,可在系统之间创建加密隧道。在需要远程访问计算机但无需图形界面的开发者中仍然广泛使用。

Rexa CyrusRexa Cyrus 10 min read
DNS 服务器故障排查指南插图,深色背景上显示警告符号和蓝色服务器,用于 Linux 名称解析错误。
Security & Networking

名称解析临时失败:含义和修复方法?

使用 Linux 时,在尝试访问网站、更新软件包或执行需要网络连接的任务时,可能会遇到名称解析临时失败错误。

Rexa CyrusRexa Cyrus 12 min read

Ready to deploy? From $2.48/mo.

独立云服务,始于2008年。AMD EPYC、NVMe,40 Gbps。14天退款保障。