熊喵君的博客

Thinking will not overcome fear but action will.

使用 Golang 实现 SSH 和 SSHD(一)

golang-ssh 库使用(入门篇)

0x00 前言    golang 的 SSH 包 提供了极为丰富的接口。基于此包可以很容易的实现 SSH 客户端、SSHD 服务端以及 SSH 代理等常用工具。 此包给了开发者极大针对 SSH 体系的扩展能力,可以实现 SSH 客户端及服务端的多种工具及安全实践。 通过下面两篇文章可以简单入门: Writing a replacement to OpenSSH using G...

Etcd 最佳实(踩)践(坑)

Etcd 日常踩坑集锦

0x00 Etcd 最佳实践 此篇文章是本人在学习和使用 Etcd 中,遇到的问题和一些使用心得的总结,避免重复踩坑。 最近阅读的一篇文章 三年之久的 etcd 3 数据不一致 bug 分析,非常好,推荐看下。 此外,笔者将常用的 EtcdV3 接口进行了封装: 在此 etcd_tools 0x01 介绍 Etcd 是一个基于 Raft 协议实现的高可用的 KV 存储系统,具备如下几...

Consul 服务治理的那些事(一)

使用 gRPC+Consul 构建高可用的后端服务

0x00 前言 业余时间利用 gRPC 与 Consul 实现的服务发现项目 grpclb2consul。这篇文章,总结下我在开发和 Consul 使用过程中的一些经验 0x01 Consul 介绍 目前我使用到的 Consul 功能,服务发现与注册(含健康检查)/ 分布式 KeyValue 存储 / 配置中心 / DNS / 分布式锁, 总而言之,只有理解了 Consul ...

证书(Certificate)的那些事

项目开发中证书的使用梳理

0x00 前言 在日常的后台开发工作中,会遇到认证的场景,比如 API 接口认证,Cookies 认证,OpenSSH 认证,SSL 认证,SSO 等,认证的方式也是百花齐放,比如 Password、HttpBasicAuth,JWT,证书,OAuth 等等。证书的不可伪造特性(Unforgeability)决定了证书在现有的公钥认证体系中扮演了及其重要的角色。这篇文章,就好好聊聊我在项目...

基于 gRPC 的服务发现与负载均衡(基础篇)

gRPC 负载均衡架构分析

0x00 前言    在后台服务开发中,高可用性是构建中核心且重要的一环。服务发现(Service discovery)和负载均衡(Load Balance)一直都是我关注的话题。今天来谈一下我在实际中是如何理解及落地的。 0x01 负载均衡 && 服务发现 基础    负载均衡 ,顾名思义,是通过某种手段将流量 / 请求分配到不通的服务器上去,保证后台的每个服务...

给 Jekyll 增加 Latex 公式渲染

0x00 介绍 上一次用 Latex 都是 7 年前的事情了,编写密码学的复杂数学公式之必备利器。 0x01 Jekyll 支持 Latex 的设置 第一步,将 _config.yml 中的 markdown 修改为 markdown: kramdown 第二步,在 header 文件中添加引用和设置代码,也就是_include/header.htm...