3. ssh 命令

ssh 命令是 Linux/Unix 系统中用于安全远程登录和管理其他计算机的命令。

ssh 命令是基于 SSH(Secure Shell)协议开发的命令。它通过加密的通道实现安全的远程访问、文件传输和命令执行。

作用

  1. 远程连接到另一台 已运行 SSH 服务 的 Linux/UNIX 系统(如服务器)。
  2. 通过终端(Linux、UNIX 和 Windows 终端)在远程计算机上执行命令,对登录的计算机进行操作。

使用 ssh 管理的远程主机需要安装 ssh 服务。我们前面已经讲过,该服务是一个守护进程,用于远程使用 ssh 命令进行连接。

ssh 服务的安装方法:

weimingze@mzstudio:~$ sudo apt install openssh-server

需要确保你的 远程主机的 ssh 服务的处于运行状态,可以使用:systemctl status ssh.service 来确认运行状态。

ssh 常用的命令格式

ssh 用户名@远程IP地址或域名

如:此网站域名为 weimingze.com,用户名为 weimingze,使用ssh 登录命令如下:

weimz@wo-deMacBook-Pro ~ % ssh weimingze@weimingze.com
The authenticity of host '192.144.206.112 (192.144.206.112)' can't be established.
ECDSA key fingerprint is SHA256:LxVUHuBKH/Z5mi2gZMNNTT+UgEIhVm5g8VXIHzy93ls.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.144.206.112' (ECDSA) to the list of known hosts.
weimingze@weimingze.com's password:
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.11.0-26-generic x86_64)
...
weimingze@web-server:~$

第一次连接会确认 指纹 信息,输入 yes 确认即可。此时出现远程主机的命令提示符:weimingze@web-server:~$。说明连接成功。

ssh 常用的选项和参数

选项/参数
说明
ssh user@hostname
基本用法,以 user 身份登录 hostname 主机。
-p <port>
指定 SSH 端口(默认 22)。
-i <私钥文件>
指定身份认证的私钥文件(默认用 ~/.ssh/id_rsa)。
-X
启用 X11 转发(支持图形界面应用)。
-C
压缩数据传输,提升慢速网络的效率。
-L <本地端口:目标主机:目标端口>
本地端口转发(将本地端口映射到远程主机端口)。
-R <远程端口:本地主机:本地端口>
远程端口转发(将远程端口映射到本地主机端口)。
-N
不执行远程命令,仅用于端口转发。
-T
不分配伪终端(适用于非交互式任务)。
-4
强制使用 IPv4 地址
-6
强制使用 IPv6 地址
-v / -vv / -vvv
显示详细调试信息(用于排查连接问题)。

其他平台的 ssh 命令

ssh 命令是 Linux/UNIX 预装的命令,用法也基本一致,这里不在赘述。

Windows 操作系统也是由 ssh 命令的,你需要启动 PowerShell 才能使用他。虽然不如 Linux 原生的 ssh 好用,但也可以应急。

用法如下:

  1. 先启动 Windows 的终端 命令提示符
  2. 在命令提示符内输入 powershell 进入 PowerShell
  3. 使用 ssh 命令登录

如下所示:

Microsoft Windows [版本 10.0.19045.5011]
(c) Microsoft Corporation保留所有权利

C:\Users\weimz>powershell
Windows PowerShell
版权所有 (C) Microsoft Corporation保留所有权利

尝试新的跨平台 PowerShell https://aka.ms/pscore6

PS C:\Users\weimz> ssh weimingze@weimingze.com
The authenticity of host 'weimingze.com (192.144.206.112)' can't be established.
ED25519 key fingerprint is SHA256:3bMWotfoAuAMhs5ZQMBV1lwWlbPHe27lJamadg+Gdko.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'weimingze.com' (ED25519) to the list of known hosts.
weimingze@weimingze.com's password:

如下图所示:

Windows ssh窗口

练习:

  1. 使用 ip -br addr 查看本 Linux 系统下的 IP 地址,如:a.b.c.d。
  2. 使用 systemctl status ssh.service 查看 ssh.service 确保服务已经安装并运行。
  3. 打开另外一个终端2。 使用 ssh 用户名@a.b.c.d 的格式连接自己的 Linux 电脑。
  4. 使用 who 命令来查看目前有几个用户登陆这台电脑。
  5. 在终端2 键入 exit 来退出远程登陆。
  6. 使用 who 命令来查看目前有几个用户登陆这台电脑。