INTERACTIVE LAB

systemsVIP0 次浏览 更新于 2026-09-29

SSH安装与配置

系统讲解“SSH安装与配置”的核心概念、常用方法与实践要点。

SSH是什么?

SSH(Secure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制。

实际使用中,我们往往使用它进行远程登录云主机。

需要注意的是,ssh是一种协议,而通常我们说的是实现了这种协议的软件,例如知名的openssh。

安装openssh

一般linux系统都自带ssh,如果没有就可以安装一下

sudo apt update        #更新数据
sudo apt upgrade        #更新软件
sudo apt install openssh-server  #下载安装ssh服务的服务器
sudo apt install openssh-client  #下载安装ssh服务的客户端

这里给出的是ubuntu安装命令,其它系统请参考具体的安装命令

windows一般自带ssh客户端,如果没有可以参照官方文档教程进行安装

SSH客户端

ssh的安装位置为:

  • ubuntu 系统的位置是/usr/bin/ssh。
  • Windows系统的位置是C:\Program Files\OpenSSH-Win64\ssh.exe

ssh 最常见的用途就是登录服务器,这要求服务器安装并正在运行 SSH 服务器软件。

ssh 登录服务器的命令如下:

ssh hostname

上面命令中,hostname是主机名,它可以是域名,也可能是 IP 地址或局域网内部的主机名。

不指定用户名的情况下,将使用客户端的当前用户名,作为远程服务器的登录用户名,如果要指定用户名,可以采用下面的语法:

ssh user@hostname    

上面的命令中,用户名和主机名写在一起了,之间使用@分隔。

用户名也可以使用ssh的-l参数指定,这样的话,用户名和主机名就不用写在一起了。

ssh -l username host

ssh 默认连接服务器的22端口,-p参数可以指定其他端口。

ssh -p 8821 foo.com

上面命令连接服务器foo.com的8821端口

连接过程

ssh 连接远程服务器后,首先有一个验证过程,验证远程服务器是否为陌生地址。

如果是第一次连接某一台服务器,命令行会显示一段文字,表示不认识这台机器,提醒用户确认是否需要连接。

The authenticity of host 'foo.com (192.168.121.111)' can't be established.
ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
Are you sure you want to continue connecting (yes/no)?

上面这段文字告诉用户,foo.com这台服务器的指纹是陌生的,让用户选择是否要继续连接(输入 yes 或 no)。

所谓“服务器指纹”,指的是 SSH 服务器公钥的哈希值。每台 SSH 服务器都有唯一一对密钥,用于跟客户端通信,其中公钥的哈希值就可以用来识别服务器。

下面的命令可以查看某个公钥的指纹:

ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub

输出:

256 da:24:43:0b:2e:c1:3f:a1:84:13:92:01:52:b4:84:ff   (ECDSA)

上面的例子中,ssh-keygen -l -f命令会输出公钥/etc/ssh/ssh_host_ecdsa_key.pub的指纹。

ssh 会将本机连接过的所有服务器公钥的指纹,都储存在本机的~/.ssh/known_hosts文件中。每次连接服务器时,通过该文件判断是否为陌生主机(陌生公钥)。

在上面这段文字后面,输入yes,就可以将当前服务器的指纹也储存在本机~/.ssh/known_hosts文件中,并显示下面的提示。以后再连接的时候,就不会再出现警告了。

Warning: Permanently added 'foo.com (192.168.121.111)' (RSA) to the list of known hosts

然后,客户端就会跟服务器建立连接。接着,ssh 就会要求用户输入所要登录账户的密码。用户输入并验证密码正确以后,就能登录远程服务器的 Shell 了。

服务器变更

服务器指纹可以防止有人恶意冒充远程主机。如果服务器的密钥发生变更(比如重装了 SSH 服务器),客户端再次连接时,就会发生公钥指纹不吻合的情况。这时,客户端就会中断连接,并显示一段警告信息。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
77:a5:69:81:9b:eb:40:76:7b:13:04:a9:6c:f4:9c:5d.
Please contact your system administrator.
Add correct host key in /home/me/.ssh/known_hosts to get rid of this message.
Offending key in /home/me/.ssh/known_hosts:36
该实验为 VIP 专享内容,
请开通后继续阅读后续 70% 并运行完整示例~

DISCUSSION

评论 0

还没有评论,来留下第一条吧。