Linux:这啥命令?这台服务器我说了算-SSH 远程连接——“人在家中坐,服务器听我说!”

举报
yd_240046519 发表于 2026/11/08 15:03:32 2026/11/08
【摘要】 第十三章:SSH 远程连接——“人在家中坐,服务器听我说!”服务器放在机房,难道每改一行配置,都要坐高铁去敲键盘?当然不用。SSH 就是一条加密的远程命令通道,让你隔着网络操作 Linux。本章以 Ubuntu / Debian 为例。准备两台机器:一台当服务器,一台当客户端;只有一台电脑的话,用虚拟机也行。 1. 服务器先把门打开在服务器上安装并启动 SSH 服务:sudo apt up...

第十三章:SSH 远程连接——“人在家中坐,服务器听我说!”

服务器放在机房,难道每改一行配置,都要坐高铁去敲键盘?当然不用。SSH 就是一条加密的远程命令通道,让你隔着网络操作 Linux。

本章以 Ubuntu / Debian 为例。准备两台机器:一台当服务器,一台当客户端;只有一台电脑的话,用虚拟机也行。

1. 服务器先把门打开

在服务器上安装并启动 SSH 服务:

sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now ssh
systemctl status ssh

查看服务器的局域网 IP:

hostname -I

假设其中一个地址是 192.168.1.50,记下来。服务器上还可以查看 22 端口是否监听:

sudo ss -lntp | grep ':22'

SSH 默认使用 TCP 22 端口。看到监听不代表外部一定能连,防火墙和网络也得放行。

2. 第一次远程登录

在客户端终端输入(把用户名和 IP 换成自己的):

ssh alice@192.168.1.50

初次连接可能会询问是否信任主机指纹。先与服务器管理员或服务器端查到的指纹核对,不要闭眼输入 yes。

接着输入服务器上 alice 用户的密码,即可登录。密码输入时终端不显示星号,这是正常现象,不是键盘罢工。

登录后试试:

whoami
hostname
pwd
exit

exit 是退出远程会话,不是关机按钮。

如果 SSH 使用其他端口,例如 2222:

ssh -p 2222 alice@192.168.1.50

3. 密码总要输?让密钥上班

密码登录简单,但每天输入十几次,手指也想申请年假。更推荐 SSH 密钥认证。

在客户端生成密钥:

ssh-keygen -t ed25519 -C "linux-lab"

按提示保存,建议为私钥设置口令。一般会得到:

  • ~/.ssh/id_ed25519:私钥,只能自己保管。
  • ~/.ssh/id_ed25519.pub:公钥,可以放到服务器。

从客户端把公钥安装到服务器:

ssh-copy-id alice@192.168.1.50

然后测试:

ssh alice@192.168.1.50

如果设置了私钥口令,仍可能需要输入私钥口令;这和服务器账户密码不是一回事。

切记:绝不发送或上传私钥。公钥可以给别人,私钥不能当群聊表情包乱转。

4. 给常用服务器起个外号

在客户端编辑 ~/.ssh/config:

Host mylab
    HostName 192.168.1.50
    User alice
    Port 22
    IdentityFile ~/.ssh/id_ed25519

以后直接:

ssh mylab

不用再背用户名和 IP。终于把“密码学仪式”变成了“一键回家”。

5. 传文件,不必再靠 U 盘

scp 可以通过 SSH 加密传输文件。以下命令都在客户端运行。

把本地文件传到服务器家目录:

scp demo.txt mylab:~/

把服务器文件下载到当前目录:

scp mylab:~/report.txt ./

复制整个目录:

scp -r ./project mylab:~/

注意:谁在冒号左边,谁就是来源;别把备份方向写反,复制完才发现自己在表演“数据搬家魔术”。

6. 连不上?按症状抓嫌疑人

报错或现象 优先检查
Connection refused SSH 服务没启动、端口写错或没监听
Connection timed out IP、路由、防火墙、云安全组
Permission denied 用户名、密码、公钥和权限
REMOTE HOST IDENTIFICATION HAS CHANGED 先核实主机是否更换或有安全风险,不要直接忽略警告

常用排查命令:

# 客户端:输出详细连接信息
ssh -v mylab

# 服务器:确认服务、监听与日志
systemctl status ssh
sudo ss -lntp | grep ':22'
sudo journalctl -u ssh -n 30

Ubuntu 启用了 UFW 时,服务器可以检查:

sudo ufw status

如需放行默认 SSH 端口,在启用防火墙之前确认规则:

sudo ufw allow OpenSSH

云服务器还可能需要在云平台安全组放行对应端口;尽量限制为自己的来源 IP,而不是向全世界敞开大门。

7. 安全提醒:别把自己锁门外

密钥登录成功后,你可能想关闭密码登录、禁止 root 远程登录。方向没错,但先别在唯一的 SSH 会话里贸然修改配置。

正确顺序是:先确认普通用户可以 sudo、密钥可用,再开第二个终端测试登录,并确保有控制台等恢复入口,最后才调整 sshd_config。改配置前可执行 sudo sshd -t 检查语法。

8. 本章实战:远程打卡

  1. 在虚拟机安装并启动 SSH 服务。
  2. 从宿主机用 ssh 用户名@IP 登录。
  3. 生成密钥并用 ssh-copy-id 配置登录。
  4. 在 ~/.ssh/config 中设置 mylab。
  5. 在客户端创建 demo.txt,用 scp 上传。
  6. 登录服务器运行 cat ~/demo.txt,确认内容。
  7. 使用 ssh -v mylab 观察一次认证过程。

能完成这套流程,你就已经具备了远程管理 Linux 的基本功。

本章口诀:连服务器用 ssh,免密码靠密钥,传文件找 scp,出故障先看日志。

下一章:《第十四章:防火墙与安全加固——“门是装好了,怎么谁都能进?”》

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。