Linux 中的基本 SSH 命令用法和配置Linux 中的基本 SSH 命令用法和配置Linux 中的基本 SSH 命令用法和配置Linux 中的基本 SSH 命令用法和配置
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux 中的基本 SSH 命令用法和配置

Secure Shell (SSH) 是一种流行的协议,用于通过互联网安全地访问远程系统。它在本地和远程计算机之间提供安全、加密的通信通道,使其成为远程管理、文件传输和隧道的绝佳工具。

在本文中,我们将介绍 Linux 中 SSH 的基本用法和配置。

安装并启用 SSH

在我们深入使用 SSH 之前,我们先确保它已在您的 Linux 计算机上安装并启用。

要在 Ubuntu、Debian 或其他基于 Debian 的发行版上安装 SSH,您可以运行以下命令 -

sudo apt-get install openssh-server

在基于 Red Hat 的系统(例如 CentOS、Fedora 或 Red Hat Enterprise Linux)上,您可以使用以下命令 -

sudo yum install openssh-server

安装 SSH 后,您可以通过使用以下命令启动 SSH 守护进程来启用它 -

sudo systemctl start sshd

要确保 SSH 在启动时自动启动,请运行以下命令 -

sudo systemctl enable sshd

连接到远程主机

要使用 SSH 连接到远程主机,您需要知道其 IP 地址或主机名。获得该信息后,您可以使用 ssh 命令启动连接。

ssh 命令的基本语法如下 -

ssh [username]@[hostname or IP address]

例如,要以用户 john 的身份连接到 IP 地址为 192.168.1.100 的远程主机,您可以使用以下命令 -

ssh john@192.168.1.100

如果这是您第一次连接到远程主机,您可能会看到如下消息 -

无法确定主机“192.168.1.100 (192.168.1.100)”的真实性。

ECDSA 密钥指纹为 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx。

您确定要继续连接吗(是/否)?

显示此消息是为了确认您信任远程主机。如果您确定要连接,请键入 yes。

然后,系统将提示您输入连接用户的密码。输入正确的密码后,您将登录到远程主机。

使用 SSH 传输文件

SSH 的另一个有用功能是能够在两台计算机之间安全地传输文件。要使用 SSH 传输文件,可以使用 scp 命令。

scp 命令的基本语法如下 -

scp [options] [source] [destination]

例如,要将名为 example.txt 的文件从本地计算机复制到 IP 地址为 192.168.1.100 的远程计算机并将其保存在 /home/john 目录中,您可以使用以下命令 -

scp example.txt john@192.168.1.100:/home/john

要将文件从远程计算机复制到本地计算机,您可以反转源参数和目标参数,如下所示 -

scp john@192.168.1.100:/home/john/example.txt .

在此示例中,命令末尾的点 (.) 指定当前工作目录作为目标。

生成 SSH 密钥

SSH 密钥是一种更安全的登录远程主机的方式,因为它们不需要密码。相反,由公钥和私钥组成的密钥对用于对用户进行身份验证。

要在本地计算机上生成 SSH 密钥对,可以使用 ssh-keygen 命令。命令的基本语法如下 -

ssh-keygen [options] [filename]

默认情况下,ssh-keygen 使用 2048 位 RSA 密钥创建密钥对。私钥保存在 ~/.ssh/id_rsa 文件中,公钥保存在 ~/.ssh/id_rsa.pub 文件中。

如果要使用不同的密钥类型或大小,可以分别指定 -t 和 -b 选项。例如,要生成 4096 位 Ed25519 密钥,您可以使用以下命令 -

ssh-keygen -t ed25519 -b 4096

生成 SSH 密钥对后,您可以使用 ssh-copy-id 命令将公钥复制到远程主机。命令的基本语法如下 -

ssh-copy-id [username]@[hostname or IP address]

例如,要将当前用户的公钥以用户 john 的身份复制到 IP 地址为 192.168.1.100 的远程主机,您可以使用以下命令 -

ssh-copy-id john@192.168.1.100

系统将提示您输入远程用户的密码。输入正确的密码后,公钥将被添加到远程主机上的authorized_keys 文件中。

从现在开始,您可以使用 SSH 密钥登录远程主机,而无需输入密码。

配置SSH

SSH 可以通过 ssh_config 文件进行配置,该文件位于 /etc/ssh/ 目录中。此文件包含适用于从计算机建立的所有 SSH 连接的全局配置选项。

您还可以在 ~/.ssh/ 目录中创建配置文件来指定各个主机的配置选项。

配置文件使用以下语法 -

Host [hostname or IP address]
   [option] [value]

例如,要指定 SSH 在连接到远程主机时应使用特定的身份文件,您可以在配置文件中添加以下行 -

Host myserver
   IdentityFile ~/.ssh/mykey

在此示例中,myserver 是远程主机的主机名或 IP 地址,~/.ssh/mykey 是本地计算机上的私钥文件的路径。

您还可以使用配置文件设置其他选项,例如端口号、用户名和压缩级别。

除了本文介绍的基本用法和配置之外,SSH 还提供其他一些功能和选项,您可能会发现这些功能和选项很有用。

SSH 隧道

SSH 隧道也称为 SSH 端口转发,允许您将流量从计算机上的本地端口转发到远程计算机上的端口。这对于访问无法从本地网络直接访问的服务非常有用。

创建 SSH 隧道的基本语法如下 -

ssh -L [local port]:[remote host]:[remote port] [username]@[remote host]

例如,要将流量从本地计算机上的端口 8080 转发到 IP 地址为 192.168.1.100 的远程服务器上的端口 80,您可以使用以下命令 -

ssh -L 8080:localhost:80 john@192.168.1.100

建立隧道后,您可以通过在 Web 浏览器中导航到 http://localhost:8080 来访问远程服务。

多主机的 SSH 配置

如果您需要使用 SSH 连接到多个远程主机,您可能会发现在 ~/.ssh/config 文件中为每个主机创建单独的配置很有用。

要为特定主机创建配置,您可以将主机部分添加到配置文件中。例如,要为主机名为 webserver 的主机创建配置,您可以将以下行添加到您的配置文件中 -

Host webserver
   HostName 192.168.1.100
   User john
   IdentityFile ~/.ssh/mykey

在此示例中,HostName 指定远程主机的 IP 地址或主机名,User 指定远程用户名,IdentityFile 指定本地计算机上私钥文件的路径。

然后,您可以使用以下命令连接到远程主机 -

ssh webserver
SSH Authentication Agents

SSH 身份验证代理允许您将 SSH 密钥存储在内存中,并使用它们对多个远程主机进行身份验证,而无需每次都输入密码。

要启用 SSH 身份验证代理,您可以使用以下命令 -

eval $(ssh-agent)

这将启动 SSH 代理并打印代理进程 ID (PID)。然后,您可以使用 ssh-add 命令将您的私钥添加到代理 -

ssh-add ~/.ssh/mykey

将密钥添加到代理后,您可以连接到远程主机,而无需每次都输入密码。

结论

SSH 是一个功能强大的工具,可用于安全地访问远程系统并在计算机之间传输文件。通过了解 SSH 的基本用法和配置,您可以利用其功能使您的工作流程更加高效和安全。

请记住始终使用强密码并保证 SSH 密钥的安全,并根据您的特定用例适当配置 SSH。考虑到这些最佳实践,SSH 可以成为远程管理和文件传输的宝贵工具。

©2015-2025 艾丽卡 support@alaica.com