Description

Following Zig's philosophy of reinventing the wheel -- for the better, a while ago I've started implementing the ssh protocol in it. I've got as far as implementing all of the primitives, keys, certs, and most of the agent protocol -- what I needed at the time. Now, the aim is to finish the implementation.

Current implementation: git.sr.ht/~mulling/zssh

Goals

  • Have a working implementation of the ssh protocol in Zig.
  • Be flexible, as to allow for hacking of the protocol (i.e. testing PQC algorithms).
  • Be agnostic of cryptography libraries (i.e. libcrypto, leancrypto).

Resources

Looking for hackers with the skills:

ssh zig

This project is part of:

Hack Week 25

Activity

  • 14 days ago: tobyjaffey liked this project.
  • 23 days ago: barendartchuk liked this project.
  • 26 days ago: mpagot liked this project.
  • about 1 month ago: lmulling liked this project.
  • about 1 month ago: lmulling disliked this project.
  • about 1 month ago: lmulling liked this project.
  • about 1 month ago: lmulling added keyword "ssh" to this project.
  • about 1 month ago: lmulling added keyword "zig" to this project.
  • about 1 month ago: phugen joined this project.
  • about 1 month ago: phugen liked this project.
  • about 1 month ago: dboll joined this project.
  • about 1 month ago: lmulling started this project.
  • about 1 month ago: lmulling originated this project.

  • Comments

    • tobyjaffey
      14 days ago by tobyjaffey | Reply

      Hi! I saw this project being spoken about on Mastodon. If you haven't seen it, you might be interested in my SSH client and server in Zig. It's unmaintained and a bit scrappy - but, it does work. Hope it's helpful inspiration https://github.com/ringtailsoftware/misshod

      • lmulling
        13 days ago by lmulling | Reply

        Hey, I'll definitely check that out, thanks for sharing!

    • dirkmueller
      6 days ago by dirkmueller | Reply

      Any update on this worth sharing?

      • lmulling
        4 days ago by lmulling | Reply

        Initially I'd hoped to get further in the implementation but that didn't materialize. Essentially I'm doing a declarative implementation, so you can easy define things outside of the protocol. I haven't found a good way to do this with with the SSH2_MSG* packets and the state machine. But, I'll continue work outside of hackweek.

    Similar Projects

    This project is one of its kind!