如何使用SSH连接服务器,2种方式远程连接VPS

作为”VPS之家”的站长,我经常收到新手朋友们的提问:”购买了VPS后,该如何SSH连接服务器呢?“我完全理解这种困惑。还记得我刚接触服务器时,面对黑乎乎的命令行也是一头雾水。”这些英文命令看起来好复杂啊!”、”连接失败是哪里出了问题?”——这些都是我曾经的疑问。

如果你已经了解VPS是什么并选购了合适的VPS,但不知道怎么连接服务器,不用担心,每个技术大牛都有新手的时候。今天,我将基于10年服务器运维经验,手把手教你如何使用SSH连接服务器,介绍两种主流的SSH远程连接方式,让你即使是零基础也能轻松掌握这项必备技能。

无论你是想管理自己的网站、部署应用程序,还是仅仅想学习Linux系统,掌握SSH连接服务器都是你必须跨过的第一道门槛。让我们一起开始这段SSH连接之旅吧!

SSH的安全机制

在深入了解SSH连接方法之前,我想先和大家聊聊SSH的安全机制。毕竟,当我们谈论远程连接服务器时,安全性是首要考虑的因素。

SSH的加密保障

SSH(Secure Shell)之所以称为”安全外壳”,正是因为它采用了强大的加密机制。在我多年管理服务器的经验中,SSH的安全性从未让我失望。它主要通过以下几层保护确保连接安全:

  1. 对称加密:用于加密整个连接的数据传输
  2. 非对称加密:用于密钥交换过程,确保密钥安全传递
  3. 哈希算法:验证数据完整性,防止数据被篡改
  4. 数字签名:验证服务器身份,防止中间人攻击

这么多加密技术,是不是有点复杂?别担心,这些安全机制都在后台自动运行,作为用户,你只需要知道你的连接是受到多重保护的。

SSH客户端与服务端的关系

理解SSH工作原理的一个简单方式是将其视为”对话”:

  • SSH客户端:就是你电脑上的软件(如PuTTY),负责发起连接请求
  • SSH服务端:运行在远程服务器上的程序,默认监听22端口,等待并处理连接请求

当我第一次理解这个概念时是这样的:SSH就像是服务器的一扇门,而我手中有钥匙可以开启它!

SSH的认证方式

SSH支持多种认证方式,主要有:

  1. 密码认证:最简单的方式,使用账号密码登录
  2. 密钥认证:更安全的方式,使用公钥和私钥对
    • 私钥:保存在本地,相当于你的”钥匙”
    • 公钥:保存在服务器,相当于服务器上的”锁”
  3. 双因素认证:结合密码和密钥,或添加其他验证因素,提供更高安全性

我个人强烈推荐使用密钥认证。记得有一次,我管理的一台服务器遭遇了暴力破解密码攻击,而使用密钥认证的服务器则安然无恙。

SSH与其他远程连接方式的比较

除了SSH,还有其他远程连接服务器的方式,如:

  • Telnet:SSH的前身,数据传输完全不加密,现在几乎已被淘汰
  • RDP(Remote Desktop Protocol):主要用于Windows服务器的图形界面远程控制
  • VNC(Virtual Network Computing):跨平台的图形界面远程控制协议

应该选择哪种连接方式呢?这取决于你的需求。如果是管理Linux/Unix服务器,SSH无疑是最佳选择;如果需要图形界面操作Windows服务器,则RDP更合适。

在我的服务器管理生涯中,SSH一直是我的首选工具。它不仅安全可靠,而且资源占用少,即使在网络条件不佳的情况下也能保持稳定连接。

安装SSH服务:大多数情况可跳过

在开始连接服务器之前,我想先说明一点:大多数VPS提供商的服务器镜像都已预装了SSH服务。无论是CentOS、Ubuntu、Debian还是其他Linux发行版,SSH服务通常都是默认安装并启用的。所以,如果你刚购买了VPS,很可能可以直接跳过本节,直接尝试连接。

只有当你无法连接服务器,或者确定需要重新安装SSH服务时,才需要回到这一步。我曾经遇到过几次需要重新配置SSH的情况,主要是在自己搭建测试环境或者处理被误删配置的服务器时。

如何确认SSH服务是否已安装并运行

如果你已经能够通过某种方式(如VPS提供商的网页控制台)访问服务器,可以运行以下命令检查SSH服务状态:

# CentOS/RHEL系统
systemctl status sshd
# Ubuntu/Debian系统
systemctl status ssh

如果看到”active (running)”的提示,说明SSH服务已经正常运行。

安装SSH服务

如果确实需要安装SSH服务,以下是不同Linux发行版的安装步骤。

Ubuntu/Debian系统

# 先更新软件包列表
apt update
# 安装OpenSSH服务器
apt install openssh-server -y
# 启动SSH服务并设置开机自启
systemctl start ssh
systemctl enable ssh

CentOS/RHEL系统

# 安装OpenSSH服务器:
yum install openssh-server -y
# systemctl start sshd
systemctl enable sshd

配置SSH服务

安装完成后,SSH服务的配置文件位于/etc/ssh/sshd_config。你可以根据需要修改这个文件来自定义SSH服务的行为。

注意:修改前先复制一份配置文件,用于异常时快速恢复。

# 备份
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.back
# 恢复
cp /etc/ssh/sshd_config.back /etc/ssh/sshd_config

一些常见的配置修改包括:

  1. 更改默认端口(提高安全性):
# 找到并修改这一行
Port 22
# 改为其他端口,如2222
Port 2222
  1. 禁用root用户直接登录(提高安全性):
# 找到并修改这一行
PermitRootLogin yes
# 改为
PermitRootLogin no
  1. 启用密钥认证并禁用密码认证(大幅提高安全性):
# 确保以下设置存在并正确
PubkeyAuthentication yes
PasswordAuthentication no

修改配置后,需要重启SSH服务使更改生效:

# CentOS/RHEL
systemctl restart sshd
# Ubuntu/Debian
systemctl restart ssh

没有SSH连不上VPS,怎么执行这些命令呢?别担心,大多数VPS提供商都提供网页控制台(Web Console)或VNC接口,你可以通过这些方式访问服务器并执行上述命令。

记住,如果你修改了SSH端口或禁用了密码认证,确保在断开连接前测试新设置是否正常工作,否则可能会将自己锁在服务器之外!我曾经就犯过这样的错误,不得不联系技术支持重置服务器。

第一种SSH连接方式:命令行连接

命令行连接是最基础、最直接的SSH连接方式。无论你是系统管理员还是开发人员,掌握命令行SSH连接都是必备技能。我在日常工作中最常用的就是这种方式,因为它简单高效,几乎在所有操作系统上都可用。

Windows系统使用命令行SSH连接

Windows 10和Windows 11已经内置了SSH客户端,这是微软近年来对开发者友好政策的一部分。如果你使用的是较旧版本的Windows,可能需要安装第三方工具,我们稍后会提到。

使用Windows内置SSH客户端

  1. 打开”命令提示符”或”PowerShell”(可以在开始菜单中搜索)
  2. 输入SSH连接命令:
# 例如服务器IP是123.45.67.89,用户名是root
ssh root@123.45.67.89
  1. 首次连接时,系统会提示你确认服务器的指纹信息,输入yes并回车
  2. 然后输入密码(输入时不会显示任何字符,这是正常的安全措施)
  3. 成功登录后,你会看到服务器的欢迎信息和命令提示符

如果你使用的是旧版Windows

对于Windows 7/8等没有内置SSH客户端的系统,你可以:

  1. 安装Git for Windows,它包含Git Bash工具,提供SSH功能
  2. 或者下载并安装OpenSSH for Windows

安装后,操作方式与上述相同。

Mac系统使用命令行SSH连接

Mac作为基于Unix的系统,天生就支持SSH连接,使用起来非常方便。

  1. 打开”终端”应用(可以通过Spotlight搜索或在应用程序/实用工具中找到)
  2. 输入SSH连接命令:
# 例如服务器IP是123.45.67.89,用户名是root
ssh root@123.45.67.89
  1. 首次连接时确认服务器指纹,输入yes
  2. 输入密码(输入时不会显示任何字符,这是正常的安全措施)
  3. 连接成功后即可操作服务器

命令行SSH连接的高级用法

掌握了基本连接后,我想分享一些我日常使用的高级技巧:

1. 指定端口连接

如果SSH服务不是运行在默认的22端口,需要使用-p参数指定端口:

ssh -p 2222 root@123.45.67.89

2. 使用密钥认证

使用密钥认证比密码更安全,也更方便(不用每次输入密码):

ssh -i /path/to/private_key root@123.45.67.89

在Windows上,路径可能是:

ssh -i C:\Users\YourName\.ssh\id_rsa root@123.45.67.89

在Mac上,路径通常是:

ssh -i ~/.ssh/id_rsa root@123.45.67.89

第二种SSH连接方式:图形SSH客户端

作为一名服务器管理员,我深知图形界面SSH客户端对于新手的友好性。虽然命令行是我的日常工作方式,但我经常向初学者推荐图形界面客户端,因为它们直观、易用,能够大大降低入门门槛。接下来,我将分享如何在Windows和Mac系统上使用图形界面客户端连接VPS。

Windows用户如何使用图形界面客户端连接VPS

在Windows平台上,PuTTY是最受欢迎的SSH客户端之一。我记得我刚开始接触服务器时,PuTTY就是我的”入门老师”。

使用PuTTY连接Linux VPS

  1. 下载并安装PuTTY
  • 访问PuTTY官方网站下载安装包
  • 运行安装程序,按照提示完成安装
  1. 配置连接
  • 打开PuTTY
  • 在”Host Name (or IP address)”框中输入你的VPS的IP地址
  • 确保”Connection type”选择的是SSH,端口默认为22
  • 你可以在左侧导航栏中展开”Connection”,然后点击”Data”,在”Auto-login username”中填入你的用户名,这样每次连接时就不需要重复输入了
  1. 保存会话配置(可选但推荐)
  • 回到”Session”页面
  • 在”Saved Sessions”框中输入一个名称(如”我的VPS”)
  • 点击”Save”按钮保存配置
  1. 开始连接
  • 点击”Open”按钮
  • 首次连接时,会弹出安全警告,询问是否信任该主机,点击”是”
  • 输入你的密码(注意:输入时不会显示任何字符)
  • 成功后,你将看到服务器的命令行界面
使用PuTTY SSH连接服务器
使用PuTTY SSH连接服务器

第一次使用PuTTY时,我总是担心输入密码时没有任何显示是不是出了问题,不用担心,但这其实是一种安全措施,防止别人看到你输入了多少字符。

市面上有很多Windows图形界面SSH客户端推荐,可以查看我们推荐的SSH客户端

Mac用户如何使用图形界面客户端连接VPS

Mac系统虽然自带Terminal可以直接使用命令行SSH,但使用SSH客户端可以记录并管理多个VPS登录信息。

使用iTerm2连接Linux VPS

iTerm2是Mac上最受欢迎的终端替代品,提供了比系统自带Terminal更丰富的功能。

  1. 下载并安装iTerm2
  • 访问iTerm2官网下载安装包
  • 将下载的.zip文件解压,然后将iTerm应用拖到Applications文件夹
  1. 使用iTerm2连接服务器
  • 打开iTerm2
  • 输入SSH连接命令:ssh 用户名@服务器IP地址
  • 首次连接时确认服务器指纹,输入”yes”
  • 输入密码完成连接
  1. 创建配置文件(可选)
  • 你可以在iTerm2中创建配置文件,方便快速连接
  • 点击”Profiles” -> “Open Profiles”
  • 点击”+”添加新配置
  • 填写名称、命令(如ssh root@123.456.789.10)等信息
  • 保存后,可以通过配置文件列表快速连接
使用iTerm2 SSH连接服务器
使用iTerm2 SSH连接服务器

SSH连接服务器常见问题(FAQ)

在我多年管理服务器的经验中,发现新手朋友们经常会遇到一些共同的问题。这里我整理了最常见的问题和解答,希望能帮助你解决在SSH连接过程中可能遇到的困惑。

Q1: 连接时提示”Connection refused”是什么原因?

A: 这通常有几种可能:

  • SSH服务没有运行或未安装
  • 服务器防火墙阻止了SSH连接(默认22端口)
  • 服务器IP地址输入错误
  • SSH服务配置为使用非标准端口

解决方法:确认SSH服务已安装并运行,检查防火墙设置,确认IP地址和端口正确。

Q2: 首次连接时出现的指纹确认是什么意思?需要担心吗?

A: 这是SSH的安全机制,用于防止中间人攻击。当你首次连接到一个服务器时,SSH客户端会记录该服务器的唯一指纹。如果是你第一次连接,确认即可。但如果是已连接过的服务器突然要求确认新指纹,则需要警惕,可能存在安全风险。

Q3: 如何解决”Permission denied (publickey,password)”错误?

A: 这个错误表示认证失败,可能原因有:

  • 用户名或密码错误
  • 服务器禁用了密码认证,只允许密钥认证
  • 密钥文件权限设置不正确

解决方法:检查用户名密码,或正确设置SSH密钥认证。

Q4: SSH连接经常断开,如何保持长时间连接?

A: 可以通过以下方式解决:

  • 在SSH客户端配置中启用心跳包(keepalive)
  • 修改服务器的SSH配置,增加ClientAliveIntervalClientAliveCountMax
  • 使用screentmux等工具在服务器端保持会话

Q5: 如何在不输入密码的情况下安全连接服务器?

A: 设置SSH密钥认证是最佳方式。基本步骤是:

  1. 在本地生成SSH密钥对
  2. 将公钥上传到服务器
  3. 确保服务器SSH配置允许密钥认证

这样设置后,连接时就不需要输入密码了,既方便又安全。

Q6: Windows和Mac的SSH客户端有什么主要区别?

A: 主要区别在于:

  • Mac自带Terminal支持SSH命令,Windows 10以上版本才内置SSH客户端
  • Windows用户通常需要额外安装PuTTY等工具
  • 文件路径表示方式不同(Windows使用反斜杠\,Mac/Linux使用正斜杠/)
  • 密钥文件格式可能不同,有时需要转换

功能上两者都能完成SSH连接的基本任务,选择哪个主要看个人习惯。

总结

通过本文的学习,我们已经掌握了SSH连接服务器的两种主要方式:命令行连接和图形界面客户端连接。无论你是Windows用户还是Mac用户,都能找到适合自己的连接方法。

工欲善其事,必先利其器。选择一个你用着顺手的SSH客户端,熟悉它的各项功能,将大大提高你管理服务器的效率。

记住,服务器管理是一个不断学习的过程。当初我也是从一个对SSH一无所知的新手开始,通过不断实践和学习,逐渐掌握了各种技巧。相信你也可以!

希望本文对你了解和使用SSH连接服务器有所帮助。如果你有任何问题,欢迎随时向我咨询。祝你的服务器之旅顺利愉快!

附录:如何连接Windows VPS

除了Linux服务器外,有些用户可能需要连接Windows VPS。与SSH连接不同,Windows VPS通常使用远程桌面协议(RDP)进行连接。作为”VPS之家”的站长,我也经常需要管理Windows服务器,下面分享一下连接Windows VPS的方法。

Mac 连接Windows VPS

对于Windows VPS,我们需要使用远程桌面连接。Mac上我们可以使用Microsoft Remote Desktop这款软件,它可以在App Store免费下载。以下是连接步骤:

  1. 打开Microsoft Remote Desktop
  2. 点击”Add PC”或”+”按钮添加新的连接
  3. 在”PC name”中输入你的Windows VPS的IP地址
  4. 在”User account”中选择”Add User Account”,然后输入你的Windows VPS的用户名和密码
  5. 点击”Add”保存设置
  6. 双击新创建的连接项来启动连接
Mac使用Microsoft Remote Desktop连接Windows VPS
Mac使用Microsoft Remote Desktop连接Windows VPS

Windows连接Windows VPS

对于Windows VPS,我们使用Windows自带的远程桌面连接工具。操作步骤如下:

  1. 打开开始菜单,搜索并运行”远程桌面连接”
  2. 在”计算机”框中输入你的Windows VPS的IP地址
  3. 点击”连接”
  4. 在弹出的窗口中输入你的Windows VPS的用户名和密码
  5. 点击”确定”进行连接
Windows远程桌面连接Windows VPS
Windows远程桌面连接Windows VPS

远程桌面连接的注意事项

  1. 端口问题 :Windows远程桌面默认使用3389端口,确保VPS提供商没有封禁该端口
  2. 安全性 :考虑使用VPN或设置防火墙规则限制RDP访问来源,增强安全性
  3. 性能调整 :如果网络条件不佳,可以在远程桌面连接设置中降低显示质量,提高响应速度

虽然本文主要讲解SSH连接,但我认为掌握Windows VPS的连接方法同样重要,毕竟不同的项目可能需要不同类型的服务器环境。

发表评论