linux小白必知——SSH

举报
暮山紫 发表于 2026/08/14 11:01:12 2026/08/14
【摘要】 SSH 入门指南:安全远程控制电脑的“加密隧道”一、什么是 SSH?SSH(Secure Shell) 是一种网络协议,它的作用是在两台电脑之间建立一条加密的隧道,让你可以安全地远程登录、执行命令、传输文件。所有的数据在传输过程中都是加密的,即使有人截获了数据包,也看不懂内容。简单说:SSH 就是远程控制电脑的安全工具。它主要用在 Linux 服务器、云主机、树莓派、路由器等设备上。如果要学...

SSH 入门指南:安全远程控制电脑的“加密隧道”

一、什么是 SSH?

SSH(Secure Shell) 是一种网络协议,它的作用是在两台电脑之间建立一条加密的隧道,让你可以安全地远程登录、执行命令、传输文件。所有的数据在传输过程中都是加密的,即使有人截获了数据包,也看不懂内容。

简单说:SSH 就是远程控制电脑的安全工具

它主要用在 Linux 服务器、云主机、树莓派、路由器等设备上。如果要学习网站搭建、编程部署、服务器运维,SSH 是必须会的基础技能。


二、SSH 能用来干什么?

1. 远程登录服务器

这是最常用的功能。你可以坐在家里的电脑前,通过 SSH 连接到远在千里之外的服务器,然后像在服务器面前一样操作它。

比如,你买了一台云服务器,系统是 Linux,没有图形界面。你就可以用 SSH 登录上去,安装软件、配置环境、查看日志。

2. 远程执行命令

SSH 不仅可以打开一个交互式的命令行,还可以直接执行一条命令然后返回结果。比如你想查看服务器磁盘剩余空间,不用登录进去,直接一条命令:

bash
ssh 用户名@服务器地址 "df -h"

服务器会执行 df -h 并把结果发回你的电脑。这对于批量管理多台服务器很有用。

3. 安全地传输文件

远程登录后,你可能需要把本地文件上传到服务器,或者从服务器下载文件。SSH 提供了两个配套工具:

  • scp:命令行复制文件,用法类似 cp

  • sftp:交互式文件传输,类似 FTP 但走 SSH 加密通道。

有了它们,你就不需要用不安全的 FTP 了。

4. 建立“隧道”访问内网服务

有时候,服务器所在的网络里有一些服务(比如数据库、内部网站),你无法直接从外网访问。SSH 可以建立一个端口转发隧道,让你通过 SSH 连接安全地访问这些内网服务。这个功能稍微进阶,但非常强大。

5. 配合 Git 推送代码

很多程序员使用 GitHub、GitLab 时,选择用 SSH 方式推送代码。配置好 SSH 密钥后,每次 git push 都不需要输入密码,既方便又安全。


三、SSH 怎么用?(零基础快速上手)

第一步:你需要什么?

  1. 一台电脑:可以是 Windows、macOS 或 Linux。Windows 10 以后的版本自带 OpenSSH 客户端;macOS 和 Linux 自带终端和 SSH 命令。

  2. 一个远程服务器的 IP 地址和用户名:比如云服务器的公网 IP,用户名通常是 root 或 ubuntu

  3. 密码或密钥:登录服务器用。

第二步:打开终端(命令行)

  • Windows:按 Win + R,输入 cmd 或 powershell,回车。

  • macOS:打开“终端”应用。

  • Linux:打开任意终端模拟器。

第三步:执行连接命令

基本格式:

bash
ssh 用户名@服务器IP

例如:

bash
ssh root@192.168.1.100

如果服务器 SSH 端口不是默认的 22,需要加 -p 参数:

bash
ssh -p 2222 root@192.168.1.100

第一次连接时,会看到类似提示:

text
The authenticity of host '192.168.1.100' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?

意思是:你第一次连接这台服务器,无法确认它的身份,问你是否继续。如果你确定服务器地址没错,输入 yes 回车。

然后会提示输入密码:

text
root@192.168.1.100's password:

输入密码(输入时屏幕不会显示任何字符,这是正常的,防止别人偷看),回车。

如果密码正确,你就成功登录了!现在你看到的命令行就是远程服务器的命令行,可以执行 lscdmkdir 等命令。

第四步:退出登录

输入 exit 或按 Ctrl + D 即可断开连接。


四、文件传输:scp 和 sftp 简单用法

1. 用 scp 复制文件

上传本地文件到服务器

bash
scp 本地文件路径 用户名@服务器IP:远程目录

例如,把本地 test.txt 上传到服务器的 /home/user/ 目录:

bash
scp test.txt user@192.168.1.100:/home/user/

下载服务器文件到本地

bash
scp 用户名@服务器IP:远程文件路径 本地目录

例如:

bash
scp user@192.168.1.100:/home/user/test.txt ./

上传整个文件夹:加 -r 参数

bash
scp -r 本地文件夹 user@192.168.1.100:/home/user/

2. 用 sftp 交互式传输

输入:

bash
sftp user@192.168.1.100

登录后进入 sftp 交互界面,常用命令:

  • ls:查看远程目录

  • cd:切换远程目录

  • lls:查看本地目录

  • lcd:切换本地目录

  • put 文件名:上传文件

  • get 文件名:下载文件

  • exit:退出


五、用密钥登录:更安全更方便

密码登录每次都要输入,而且密码可能被暴力破解。更推荐的方式是密钥登录

原理很简单:

  • 你生成一对“钥匙”:私钥(自己留着,绝不能给别人)和公钥(放到服务器上)。

  • 登录时,服务器用公钥加密一个挑战,你用私钥解密并回应,证明你是你。

  • 私钥还可以设置一个“口令”(passphrase),即使私钥文件泄露,别人没有口令也用不了。

简单步骤:

  1. 生成密钥对(在本地执行):

bash
ssh-keygen -t ed25519

一路回车即可(默认保存位置 ~/.ssh/id_ed25519)。如果想设置私钥口令,在提示时输入。

  1. 把公钥放到服务器(需要输入一次密码):

bash
ssh-copy-id 用户名@服务器IP

执行后,输入服务器密码,公钥就会自动添加到服务器的 ~/.ssh/authorized_keys 文件。

  1. 测试免密登录

bash
ssh 用户名@服务器IP

如果不再提示输入密码(或者只提示输入私钥口令),就成功了。

以后登录这台服务器,就不用输密码了,既方便又安全。


六、新手注意事项(避坑指南)

1. 保护好你的私钥

私钥文件(通常是 ~/.ssh/id_ed25519)相当于你的身份凭证。不要把它发给别人,不要上传到网盘,不要复制到公共电脑。如果私钥泄露,别人就能登录你的服务器。

2. 第一次连接要核对指纹

前面提到第一次连接会显示一个指纹。这个指纹是服务器的“身份证”。如果你在云平台控制台创建服务器,通常可以在控制台看到 SSH 指纹。如果显示的指纹和控制台的不一致,说明可能有人冒充服务器(中间人攻击),不要继续连接

3. 不要随意关闭防火墙或改端口

有些教程会教你修改 SSH 端口(从 22 改成其他端口)来避免扫描。对于新手来说,暂时不用改端口,因为改错了可能自己都连不上。更重要的是设置强密码或使用密钥登录,并保持防火墙只开放必要的端口。

4. 不要用 root 用户直接登录(进阶)

很多云服务器默认可以用 root 登录。虽然方便,但风险高——一旦密码泄露,攻击者就有最高权限。更好的做法是创建一个普通用户,用普通用户登录后,需要管理员权限时用 sudo 命令。但作为新手,可以先了解,后续再配置。

5. 服务器权限问题

如果你在服务器上用密钥登录失败,最常见的原因是文件权限不对。确保:

  • ~/.ssh 目录权限是 700

  • ~/.ssh/authorized_keys 文件权限是 600

可以用命令修改:

bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

6. 不要在生产服务器上随意测试危险命令

比如 rm -rf /(删除根目录所有文件)、mkfs(格式化磁盘)等。远程操作时,命令的执行结果和你本地一样,但影响的是服务器。操作前多确认。

7. 定期更新系统和 SSH 软件

保持 SSH 客户端和服务端软件更新,可以修复已知安全漏洞。在服务器上定期执行系统更新(比如 apt update && apt upgrade 或 yum update)。


七、总结

SSH 是每个接触服务器的人必须掌握的工具。它就像一个安全的遥控器,让你能远程操控远方的电脑。

对于新手,你只需要先记住:

  • 连接ssh 用户名@服务器IP

  • 传文件scp 或 sftp

  • 更安全方便:配置密钥登录

  • 保护私钥,核对指纹,别乱删东西

掌握这些,就可以开始探索远程服务器的世界了。随着使用深入,还会接触到端口转发、跳板机、配置文件等高级功能,但那些都不急于一时。先从简单的远程登录开始吧!

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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