学习SSH协议

本文详细介绍了SSH协议的传输阶段、认证阶段和会话阶段,包括版本协商、密钥协商和认证方式如密码及公钥认证。同时,讨论了轻量级的DROPBEAR和常用的OPENSSH的移植与使用,并在Windows10环境下展示了如何开启SSH服务以及配置免密登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

协议

操作环境:

客户端IP:192.168.150.10

服务器IP:192.168.150.1

框架:

传输阶段

建立连接:

客户端发起tcp连接请求,三次握手建立连接

 

版本协商:

客户端向服务器发送自己的版本号,服务器向客户端回复自己的版本号并发送本端支持的公钥算法/加密算法等列表,协商出两边都支持的版本,当前主要都是sshv2

 

密钥协商:

客户端回复本端支持的公钥算法列表,加密算法列表,消息验证码算法列表(MAC),压缩算法列表

两端通过DH算法协商出会话密钥和会话ID,用于后面通信数据的加密和解密

 

The server host key is used during key exchange to verify that the client is really talking to the correct server.

For this to be possible, the client must have a priori knowledge of the server's public host key.

服务器的host_key用于密钥交换期间,检测客户端是否访问的是正确的服务器

认证阶段

密码认证

客户端将用户名密码加密发给服务器进行验证

公钥认证

客户端生成一对公钥和私钥,将公钥存放在服务器上,即可达成免密登录,github使用该方法可以无需用户密码直接下载代码

会话阶段

基于加密的数据方式进行通信

DROPBEAR

 一款适用于嵌入式轻量级的ssh程序,官网:https://matt.ucc.asn.au/dropbear/dropbear.html

移植:

依赖zlib库

执行./configure 生成对应的Makefile,可以执行./confiure --help查看生成Makefile的选项

作为服务器

        dropbearkey 程序生成公钥

        dropbear 开启加载ssh服务

作为客户端

        dbclient   客户端程序用于连接ssh服务器

OPENSSH

移植openssh需要三个包:openssh、openssl 和 zlib,地址如下:

•        zlib官方下载:http://www.zlib.net/

•        openssl官方下载:http://www.openssl.org/source

•        openssh官网下载:http://www.openssh.com/portable.html

执行./configure 生成Makefile,执行./configure可指定交叉编译工具链,openssl库、zlib库路径、安装bin文件的路径,具体可以执行./configure --help

应用

环境:windowns10

  • 开启ssh服务

设置>应用>应用和功能>可选功能

添加安装OPENSSH服务器

 

在CMD中输net start ssh即可启动SSH服务,net stop sshd则是停止ssh服务

  • 配置免密登录

修改C:\ProgramData\ssh\sshd_config文件,使用公钥认证而不需进行密码认证,如下:

PubkeyAuthentication yes
AuthorizedKeysFile        .ssh/authorized_keys
PasswordAuthentication no

确保以下2条有注释掉
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

 

将客户端的公钥内容粘贴至C:\Users\usrname\.ssh\authorized_keys文件中即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值