guardian-agent VS widecharwidth

Compare guardian-agent vs widecharwidth and see what are their differences.

guardian-agent

[beta] Guardian Agent: secure ssh-agent forwarding for Mosh and SSH (by StanfordSNR)

widecharwidth

public domain wcwidth implementation (by ridiculousfish)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
guardian-agent widecharwidth
5 2
433 50
0.5% -
0.0 4.0
9 months ago 9 months ago
Go Python
BSD 3-clause "New" or "Revised" License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

guardian-agent

Posts with mentions or reviews of guardian-agent. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-09-18.
  • Restricting SSH Agent Keys
    1 project | news.ycombinator.com | 5 Jan 2022
    https://github.com/StanfordSNR/guardian-agent

    The problem basically is the current agent forwarding protocol doesn't have a way to reliably identify the source and remote host that can't be spoofed. guardian-agent tries to do that using some extra software, this linked SSH proposal is to add that to SSH but it will require software upgrades even to the sshd of the intermediate and remote hosts - it's not ideal that it can't just work out of the box - but I welcome this we just need to get it done now for later.

    I frequently finding myself thinking about adding useful things to software I want to use now and go well it will be years before its on every host I use and can be used reliably. I have had this thought on and off for more than a decade. Ship some new stuff, it'l be great later :D

  • The pitfalls of using SSH-agent, or how to use an agent safely
    3 projects | news.ycombinator.com | 18 Sep 2021
    ObPlug for Guardian Agent, which is basically "safe" ssh-agent forwarding (and works with Mosh and SSH): https://github.com/StanfordSNR/guardian-agent

    The basic story is that ssh-agent really just exposes a primitive of "please sign this challenge," which is useful locally, but the protocol wasn't designed to be forwarded. If requests are coming from a semi-trusted intermediary host, the protocol doesn't tell the agent (a) what remote server is being authenticated to [i.e., who generated the challenge?], or (b) what command is going to be executed. It doesn't even really know (c) what (semi-trusted) host has forwarded the challenge?

    Guardian Agent is a sort of hack that allows the agent to know (a), (b), and (c) before deciding whether to grant or deny the request, and you can set up policies like, "I'd like to allow `jump host x` to use to run "git pull" when talking to `git server y`, but that's it." The basic ssh-agent protocol just doesn't have enough info to be able to do something like that.

  • Mosh: The Mobile Shell
    15 projects | news.ycombinator.com | 11 Aug 2021
    there is a fork with port forwarding support https://github.com/rinne/mosh and a PR with a long discussion https://github.com/mobile-shell/mosh/pull/696 on why it's not merged

    you can compile them yourself or if you want to skip the step I recently set up GitHub actions to compile linux binaries of this [1][2], tested by a sample of 1 so no guarantees it works, was planning on doing a tap PR/tap of it at some point

    also the official developers have been involved a project to solve this while improving the whole-agent approval things also https://github.com/StanfordSNR/guardian-agent , but I couldn't get it to work which is why I tried the fork and got that working

    [1] https://github.com/gnyman/mosh/actions/runs/1068715036

  • AskReddit: is there such a thing as async SSH that allows for zero latency typing? (explanation in text)
    2 projects | /r/commandline | 13 Mar 2021
    ‘mosh’ is amazing for this, although I had to stop using it years ago because it didn’t support key forwarding. Apparently, there’s now a solution for that: https://github.com/StanfordSNR/guardian-agent

widecharwidth

Posts with mentions or reviews of widecharwidth. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-01-28.
  • Terminal support for Emoji – or why terminals don't like families
    6 projects | news.ycombinator.com | 28 Jan 2022
    >For example, iTerm2 considers the "rosette" emoji to have width 1

    The reason for this is quite possibly that Unicode 9 changed the width for some codepoints (mostly emoji) from 1 to 2, and iTerm until very recently (don't know if it's released yet) defaulted to the Unicode 8 widths, with an opt-in escape sequence to change to Unicode 9.

    >This approach comes from the wcwidth utility, and the comment at the top of the C source file provides further insight into the difficulties faced here.

    That's link goes to Markus Kuhn's implementation from 2007. It supports Unicode 5, and is by now woefully out of date. You don't want to use it anymore.

    Most terminals have their own definition, and the annoying part is that the client application and the terminal need to have theirs in sync or they get weird glitches when moving the cursor.

    Shameless plug: Fish's solution is widecharwidth[0], which is a python script that parses the Unicode data files and generates a wcwidth for C++, Javascript and Rust. It's still a wcwidth, meaning that it has issues with joining code points, but it's at least a start. It's up-to-date with Unicode 14 and, unless they change the data format (again) should be easy to update to future Unicode releases.

    It's public domain and used by at least fish and WezTerm.

    [0]: https://github.com/ridiculousfish/widecharwidth

  • Mosh: The Mobile Shell
    15 projects | news.ycombinator.com | 11 Aug 2021
    With fish we've made the experience that relying on libc isn't good enough.

    Specifically in the case of connecting to a server that typically has an old libc with old unicode information, from a desktop that has a much newer system, or in case of ambiguous characters, where libc will just give you one width that might not match what the terminal actually renders (and they frequently have configuration options to change it!).

    So we've made something we call widecharwidth (https://github.com/ridiculousfish/widecharwidth), which is a python script that parses the unicode datafiles (UnicodeData.txt, emoji-data.txt and friends) and generates a header you can #include.

    And someone's opened a PR to mosh to integrate it: https://github.com/mobile-shell/mosh/pull/1143

What are some alternatives?

When comparing guardian-agent and widecharwidth you can also consider the following projects:

Mosh - Mobile Shell

muxile - Putting tmux on your mobile - Muxile is a tmux plugin that lets you control a running tmux session with your phone, no app needed.

openssh-portable - Portable OpenSSH

unicode-properties - Provides fast access to unicode character properties

DomTerm - DOM/JavaScript-based terminal-emulator/console

mosh - Mobile Shell

Windows Terminal - The new Windows Terminal and the original Windows console host, all in the same place!

mac-ssh-confirm - Protect against SSH Agent Hijacking on Mac OS X with the ability to confirm agent identities prior to each use

mosh - Mobile Shell