当前位置: 首页 > news >正文

HTTP、HTTPS、SSH区别以及如何使用ssh-keygen生成密钥对

HTTP、HTTPS、SSH区别以及如何使用ssh-keygen生成密钥对

HTTP (HyperText Transfer Protocol)

  • 定义:应用层协议,用于通过Web传输数据(如网页、文件)
  • 默认端口:80
  • 机制:客户端发送Get请求,服务器返回文件或数据流,基于请求-响应模型
  • 安全性:数据明文传输,容易被窃听和篡改
  • 下载性能:无加密,传输速度最快,适合大文件下载

HTTPS (HTTP Secure)

  • https是http的加密版本,使用TLS/SSL加密通信
  • 默认端口:443
  • 机制:同HTTP一样,但是通过TLS/SSL加密,确保数据不被拦截或篡改
  • 安全性:数据加密,防止中间人攻击,服务器通过TLS证书验证身份
  • 下载性能:加密增加少量开销(TLS握手),速度略慢于HTTP

SSH (Secure Shell)

  • 安全协议,用于远程登陆、命令执行和文件传输
  • 默认端口:22
  • 机制:通过加密回话传输文件,支持SCP/SFTP或Git协议,基于持久连接
  • 安全性:数据全程加密,使用公钥/私钥认证
  • 下载性能:适合小文件或高安全性场景

三者区别对比

特性HTTPHTTPSSSH
加密性无加密,明文传输,易被拦截TLS/SSL 加密,安全默认加密(RSA/Ed25519),安全
端口8044322
认证方式无或用户名/密码、Token同 HTTP,另需服务器 TLS 证书密码或公钥/私钥认证
下载场景公开文件、网页内容安全文件下载、API、Git 仓库远程文件、Git 仓库、服务器管理
Git 下载HTTPS URL,需凭证HTTPS URL,需凭证SSH URL,密钥认证
速度快(无加密开销)略慢(加密开销)较慢(加密和会话开销)
工具浏览器、curl、wget浏览器、curl、wgetscp、sftp、Git
连接模型请求-响应,无状态请求-响应,无状态会话式,双向通信
适用性公开资源下载安全下载、API 调用私有资源、需认证的下载

使用ssh-keygen生成密钥对

  • 简介
    • ssh-keygen是Openssh提供的命令工具,用于生成和管理ssh密钥对,包含
      • 私钥:保密,存储在本地(如~/.ssh/id_rsa)
      • 公钥:可分享,添加到远程服务器或服务(如:~/.ssh/id_rsa.pub)
  • 前提要求
    • 系统要求
      • Linux/macOS:通常预装OpenSSH(验证:ssh-keygen --version)
      • Windows:使用Git bash、PowerShell(Windows10/11内置OpenSSH)或WSL
    • 安装OpenSSH(如果未安装)
      • Linux:sudo apt install opens-client(Debian/Ubuntu)或sudo yum install opens-clients(CentOS)
      • macOS:brew install openssh
      • Windows:启用"OpenSSH客户端"或安装Git for Windows
    • 终端基础:熟悉命令行操作即可

生成密钥对

1、打开终端(Linux/macOS终端,windows的Git bash或PowerShell)

2、执行以下命令

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"# -t rsa:算法类型(RSA,也可选 ecdsa 或 ed25519)。
# -b 4096:密钥长度(4096 位更安全,默认 2048 位)。
# -C "your_email@example.com":添加注释(通常是邮箱,便于识别)。

3、提示输入保存路径,如下所示(一般默认即可,直接回车)

Enter file in which to save the key (/home/user/.ssh/id_rsa):# 默认路径:按 Enter,保存到 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。
# 自定义路径:输入路径(如 ~/.ssh/my_key),生成 my_key 和 my_key.pub。

4、设置密码

Enter passphrase (empty for no passphrase):
Enter same passphrase again:# 无密码:直接按 Enter,方便自动登录(如 Git 推送),但安全性稍低。
# 设置密码:输入密码,每次使用私钥需输入,适合服务器登录。
# 建议:GitHub 等场景可不设密码,服务器登录建议设密码。

5、确认生成

Your identification has been saved in /home/user/.ssh/id_rsa
Your public key has been saved in /home/user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx your_email@example.com

如果是一路回车选择默认操作,那么公钥和私钥所在路径如下

# ~是Home(家)目录
私钥:~/.ssh/id_rsa
公钥:~/.ssh/id_rsa.pub

其他算法

  • Ed25519(推荐,现代且高效),操作如下
ssh-keygen -t ed25519 -C "your_email@example.com"
# 优点:速度快、安全性高。
# 缺点:老系统可能不支持。
  • ECDSA,操作如下
ssh-keygen -t ecdsa -b 521 -C "your_email@example.com"
# 适合资源受限设备
  • 推荐:优先 Ed25519,若需兼容性用 RSA(4096 位)

将公钥添加到Github

1、登陆Github,进入 Settings > SSH and GPG keys > New SSH key

2、粘贴公钥,设置标题(如 “MyKey”),点击 Add SSH key即可

3、测试联通性,执行以下命令

ssh -T git@github.com

会输出以下内容

Hi username! You've successfully authenticated...

如果出现以下内容,敲yes回车即可

The authenticity of host 'github.com (222.222.222.222)' can't be established.
# RSA key fingerprint is 66:77:ffc:a5:76:28:55:3g:6h:1b:56:4e:tb:df:gg:g8.
# Are you sure you want to continue connecting (yes/no)?

将公钥复制到远程服务器

执行以下命令

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host
# 替换 user@remote_host为你的真实服务器ip地址(如 john@192.168.1.100),添加时需要输入密码
# 或手动将公钥追加到服务器的 ~/.ssh/authorized_keys。

测试联通性,执行以下命令

ssh user@remote_host
# 若没有密码,则会直接连接成功
# 若设密码,输入私钥密码。
# 如果出现以下内容,敲yes回车即可
# Are you sure you want to continue connecting (yes/no)?

相关文章:

  • Pyhton生活手册-NumPy数据类型:从快递单到智能家居的数据变形术
  • 长短期记忆网络(LSTM)深度解析:理论、技术与应用全景
  • [Linux网络_71] NAT技术 | 正反代理 | 网络协议总结 | 五种IO模型
  • 使用FastAPI和React以及MongoDB构建全栈Web应用01 概述
  • MySQL 索引(一)
  • MIT XV6 - 1.4 Lab: Xv6 and Unix utilities - find
  • 数字信号处理|| 快速傅里叶变换(FFT)
  • Google Earth Pro(谷歌地球)2025大陆版安装教程
  • 逐步理解Qt信号与槽机制
  • 玩转Docker | 使用Docker部署DailyTxT日记工具
  • 从文本到语义:BERT、Faiss 与 Elasticsearch 的协同实践
  • Git 分支指南
  • window 显示驱动开发-线性伸缩空间段
  • n8n系列(5):LangChain与大语言模型应用
  • 如何通过合法数据变现实现收入增长
  • TWAS / FUSION
  • JDBC演进之路:从基础操作到高效连接池
  • Kubernetes生产实战(十七):负载均衡流量分发管理实战指南
  • 动态路由EIGRP的配置
  • uniapp|实现商品分类与列表数据联动,左侧菜单右侧商品列表(瀑布流、高度自动计算、多端兼容)
  • 江苏省委社会工作部部长等多人拟在省志愿服务联合会任职
  • 2025年度上海市住房城乡建设管理委工程系列中级职称评审工作启动
  • 市自规局公告收回新校区建设用地,宿迁学院:需变更建设主体
  • 近4小时会谈、3项联合声明、20多份双边合作文本,中俄元首今年首次面对面会晤成果颇丰
  • 股价两天涨超30%,中航成飞:不存在应披露而未披露的重大事项
  • 圆桌丨中俄权威专家详解:两国携手维护战后国际秩序,捍卫国际公平正义