如何使用基本的 SSH 命令连接到远程服务器

掌握用于安全远程服务器访问的基础 `ssh` 命令。本基本指南详细解析了核心语法,包括用户名、主机地址和自定义端口选项 (`-p`)。学习如何使用密码以及更安全的基于密钥的身份验证 (`-i`) 建立连接。本文非常适合新用户和管理员,提供了实用的示例和必要的故障排除技巧,以确保每次连接都稳定高效。

38 浏览量

使用基本SSH命令连接到远程服务器

安全外壳(SSH)简介

安全外壳(SSH)是安全远程管理的核心,它提供一种加密网络协议,用于在不安全的网络上安全地运行网络服务。它是系统管理员和开发人员用于远程访问和管理Linux、Unix和macOS服务器的标准方法。与Telnet等旧的不安全协议不同,SSH会加密传输的所有数据,包括用户名、密码和命令输出,从而确保隐私和完整性。

本指南侧重于协议最基本方面:使用基本ssh命令语法建立简单的直接连接。无论您是执行系统维护、部署代码还是传输文件,理解基本连接机制是利用安全外壳协议全部功能的关键第一步。

连接先决条件

在尝试连接之前,请确保您已准备好以下组件:

  1. SSH客户端:大多数现代操作系统(Linux、macOS)默认包含OpenSSH客户端。Windows 10/11也集成了OpenSSH客户端,但旧版本可能需要PuTTY等第三方应用程序。
  2. 服务器地址(主机):远程计算机的IP地址(例如,192.168.1.50)或完全限定域名(FQDN,例如,server.example.com)。
  3. 用户名:远程服务器上的有效用户帐户(例如,rootubuntujdoe)。
  4. 凭据:指定用户的密码或匹配的私有SSH密钥文件。

基本SSH命令语法

建立SSH连接依赖于简单、一致的语法结构。该命令需要指定您是谁以及您要去哪里

核心语法分解

SSH命令最基本的结构是:

ssh [options] username@host_address
组件 描述 示例值
ssh 启动安全外壳连接的命令。 -
[options] 修改连接的可选标志(例如,端口、身份文件)。 -p 2222
username 您希望登录的远程服务器上的帐户名。 sysadmin
host_address 远程服务器的IP地址或域名。 172.31.255.10webserver.com

连接到默认端口

默认情况下,SSH服务器侦听TCP端口22。如果远程服务器使用此默认端口,则除了用户名和主机外,您无需指定任何选项。

示例:以用户jdoe连接到192.168.1.100处的服务器

ssh [email protected]

如果这是首次连接到服务器,SSH客户端会提示您验证服务器的主机密钥,询问您是否希望信任该连接。您必须键入yes才能继续。然后,该密钥将存储在您的~/.ssh/known_hosts文件中。

基本连接选项

虽然基本语法适用于大多数标准连接,但有几个选项经常用于自定义或故障排除连接。

指定自定义端口(-p

出于安全原因,许多服务器管理员会将默认SSH端口(22)更改为非标准端口(例如,2222、50000)。您必须使用-p标志来指定此自定义端口。

语法:

ssh -p [port_number] username@host_address

示例:连接到appserver.local上的端口5555

ssh -p 5555 [email protected]

提示:端口位置

请注意,-p选项应放在username@host参数之前

详细输出(-v

如果您在连接时遇到问题(例如,连接超时、身份验证失败),详细模式对于故障排除非常有价值。-v标志增加了输出级别,显示连接过程的详细步骤,包括协商、密钥交换和身份验证尝试。

语法:

ssh -v username@host_address

为了获得更详细的调试信息,您可以使用-vv-vvv(最大详细程度)。

运行单个远程命令

SSH通常用于打开交互式shell会话。但是,您可以在远程服务器上执行单个命令,而无需建立连续会话。连接会执行命令、返回输出,然后立即关闭。

语法:

ssh username@host_address "command to run"

示例:检查远程服务器上的磁盘空间(df -h):

ssh [email protected] "df -h"

身份验证方法

连接建立后,服务器需要进行身份验证以验证您的身份。两种主要方法是密码身份验证和基于密钥的身份验证。

1. 密码身份验证

这是最简单的方法,连接建立后,服务器会提示您输入用户的密码。SSH会加密密码传输。

过程:

  1. 运行ssh命令。
  2. 服务器提示:[email protected]'s password:
  3. 输入密码(输入将不可见)。

警告:安全注意事项

尽管方便,但密码身份验证容易受到暴力破解攻击。最佳实践是完全禁用面向公众的服务器上的密码身份验证,并仅依赖SSH密钥。

2. 基于密钥的身份验证

基于密钥的身份验证使用一对加密密钥:存储在服务器上的公钥和存储在本地计算机上的相应私钥。这种方法比密码安全得多。

指定身份文件(-i

如果您的私钥文件不在默认位置(~/.ssh/id_rsa~/.ssh/id_ed25519),您必须使用-i选项指定其位置。

语法:

ssh -i /path/to/private/key/file username@host_address

示例:使用名为prod_server_key的特定密钥进行连接

ssh -i ~/.ssh/prod_server_key [email protected]

设置密钥身份验证(简要概述)

要使用密钥身份验证,您通常遵循以下步骤:

  1. 在本地计算机上使用ssh-keygen生成密钥对。
  2. 将公钥复制到远程服务器的~/.ssh/authorized_keys文件中,通常使用ssh-copy-id实用程序完成。
ssh-copy-id username@host_address

实用SSH命令摘要

目标 命令示例 描述
标准连接 ssh [email protected] 使用默认端口22连接。
自定义端口 ssh -p 443 [email protected] 连接到端口443。
密钥身份验证 ssh -i ~/.ssh/dev_key dev@testbed 使用特定的私钥文件连接。
调试连接 ssh -v [email protected] 以详细模式运行连接以进行故障排除。
远程命令 ssh user@host "uptime" 执行uptime命令后退出。

结论

基本的ssh命令是远程服务器管理的大门。通过掌握核心语法(ssh user@host)并理解端口指定(-p)和身份文件(-i)等基本选项,您可以可靠地建立到任何远程服务器环境的安全连接。转向基于密钥的身份验证对于维护高级别安全性至关重要,应尽可能优先于密码登录。连接后,您将拥有完整的命令行访问权限来管理您的远程计算机。