<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>网络 on 我的技术博客</title>
    <link>https://blogvoyant.pages.dev/tags/%E7%BD%91%E7%BB%9C/</link>
    <description>Recent content in 网络 on 我的技术博客</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 28 Jul 2026 00:00:00 +0800</lastBuildDate>
    <atom:link href="https://blogvoyant.pages.dev/tags/%E7%BD%91%E7%BB%9C/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>SSH (Secure Shell) 完全指南</title>
      <link>https://blogvoyant.pages.dev/posts/ssh-complete-guide/</link>
      <pubDate>Tue, 28 Jul 2026 00:00:00 +0800</pubDate>
      <guid>https://blogvoyant.pages.dev/posts/ssh-complete-guide/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;📖 &lt;strong&gt;导读&lt;/strong&gt;：这篇文章面向第一次接触 SSH 的新手。正文保留原技术内容，对出现的专业名词和概念用 &lt;code&gt;💡 注&lt;/code&gt; 的形式补充通俗解释，帮你扫清理解障碍。命令部分可以直接照抄使用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;SSH（Secure Shell）是一种加密的网络协议，用于在不安全的网络上安全地运行网络服务。它最常用于远程登录到计算机系统，执行命令，也支持文件传输、端口转发等功能。SSH 是系统管理员、开发人员和运维工程师的必备工具。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;注（网络协议）&lt;/strong&gt;：协议就是两台计算机约定好&amp;quot;怎么互相说话&amp;quot;的规则&amp;ndash;数据以什么格式发送、对方怎么回应。SSH 是其中一种专门用于&amp;quot;安全远程操作&amp;quot;的协议。&lt;/p&gt;
&lt;p&gt;💡 &lt;strong&gt;注（加密）&lt;/strong&gt;：加密就是把原本明文的数据用数学方法打乱成一串乱码，只有持有&amp;quot;钥匙&amp;quot;的人才能还原。这样即使数据在网络传输途中被别人截获，看到的也是乱码，无法读懂内容。&lt;/p&gt;
&lt;p&gt;💡 &lt;strong&gt;注（远程登录）&lt;/strong&gt;：就是你在自己的电脑上，通过网络操作另一台电脑，效果就像坐在那台电脑前敲键盘一样。常用于管理服务器&amp;ndash;服务器通常放在机房或云端，你没法物理接触。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-什么是-ssh&#34;&gt;1. 什么是 SSH？&lt;/h2&gt;
&lt;p&gt;SSH 是 &lt;strong&gt;Secure Shell&lt;/strong&gt; 的缩写，它替代了早期的 Telnet、rlogin 等不安全的远程登录协议。SSH 通过对所有通信数据进行加密和认证，防止了中间人攻击、窃听、连接劫持等风险。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;注（三种攻击通俗解释）&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;窃听&lt;/strong&gt;：别人在网络上&amp;quot;偷听&amp;quot;你发的数据。早期 Telnet 明文传输，密码都能被直接读出来。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中间人攻击&lt;/strong&gt;：攻击者冒充服务器（或客户端）插在你们中间，转发并窃取信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;连接劫持&lt;/strong&gt;：攻击者在你已经连上之后，强行接管你的连接。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SSH 的加密和认证机制能防住这三种。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;ssh-的主要组件&#34;&gt;SSH 的主要组件&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SSH 客户端&lt;/strong&gt;：用于发起连接的软件，如 OpenSSH 客户端（&lt;code&gt;ssh&lt;/code&gt; 命令）、PuTTY、Termius 等。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SSH 服务器&lt;/strong&gt;：运行在远程主机上的守护进程（&lt;code&gt;sshd&lt;/code&gt;），接受客户端的连接请求。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;加密技术&lt;/strong&gt;：SSH 使用公钥密码学进行身份认证，并使用对称加密（如 AES）保护会话数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;协议版本&lt;/strong&gt;：目前主流的是 SSH-2，修复了 SSH-1 中的安全漏洞。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;注（守护进程 daemon）&lt;/strong&gt;：守护进程就是一直在后台运行、默默等待任务的服务程序。&lt;code&gt;sshd&lt;/code&gt; 里的 &lt;code&gt;d&lt;/code&gt; 就代表 daemon。它开机就启动，一直监听&amp;quot;有没有人来连接&amp;quot;，有人连就处理。&lt;/p&gt;
&lt;p&gt;💡 &lt;strong&gt;注（公钥密码学 / 对称加密）&lt;/strong&gt;：这是两种加密方式，后文&amp;quot;密钥认证&amp;quot;会详细讲公钥密码学。这里先知道：对称加密 = 加密和解密用同一把钥匙（速度快，用来加密会话内容）；公钥密码学 = 一对钥匙，一把公开一把保密（用来做身份认证）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;ssh-工作原理简述&#34;&gt;SSH 工作原理简述&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;连接建立&lt;/strong&gt;：客户端向服务器发起 TCP 连接（默认端口 22）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;版本协商&lt;/strong&gt;：双方交换协议版本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;密钥交换&lt;/strong&gt;：通过 Diffie-Hellman 算法生成共享密钥，用于后续对称加密。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务器认证&lt;/strong&gt;：客户端验证服务器的主机密钥（通常存储在 &lt;code&gt;~/.ssh/known_hosts&lt;/code&gt; 中）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用户认证&lt;/strong&gt;：客户端通过密码、公钥等方式向服务器证明身份。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;会话交互&lt;/strong&gt;：认证成功后，双方建立加密通道，用户即可执行命令或传输文件。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;注（端口 port）&lt;/strong&gt;：端口可以理解为一台电脑上&amp;quot;信箱的编号&amp;quot;。一台电脑同时跑很多网络服务，IP 地址只定位到电脑，端口号定位到电脑上的具体服务。SSH 默认用 22 号端口。后面会看到很多 &lt;code&gt;-p 端口号&lt;/code&gt; 的用法就是指定端口。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
