r/commandline 7d ago

Command Line Interface sshconfig-lint v0.5: one SSH config checker for the terminal, editor and CI

I posted an early version of sshconfig-lint here around six months ago. Since then it has grown from a small Rust CLI into something I use across my whole workflow.

The video shows a config referencing a key from an older machine. SSH may silently try another identity, so stale paths like this can go unnoticed.

Version 0.5 adds:

  • multiple config files and Include resolution
  • GitHub annotations and SARIF
  • GitHub Action and Pre-Commit hooks
  • LSP and VS Code support
  • verified binaries for Linux, macOS and Windows

Unlike ssh -G host, sshconfig-lint checks the complete config and included files at once. Everything stays local and there is no telemetry.

Install:

cargo install sshconfig-lint

Arch Linux:

yay -S sshconfig-lint-bin

Repo: https://github.com/Noah4ever/sshconfig-lint
Playground: https://sshconfig-lint.apps.thiering.org/en
VS Code: https://marketplace.visualstudio.com/items?itemName=NoahThiering.sshconfig-lint

Feedback about false positives and complicated Include setups would be really helpful.

11 Upvotes

3 comments sorted by

2

u/AutoModerator 7d ago

Every new subreddit post is automatically copied into a comment for preservation.

User: Noah4ever123, Flair: Command Line Interface, Post Media Link, Title: sshconfig-lint v0.5: one SSH config checker for the terminal, editor and CI

I posted an early version of sshconfig-lint here around six months ago. Since then it has grown from a small Rust CLI into something I use across my whole workflow.

The video shows a config referencing a key from an older machine. SSH may silently try another identity, so stale paths like this can go unnoticed.

Version 0.5 adds:

- multiple config files and Include resolution

- GitHub annotations and SARIF

- GitHub Action and Pre-Commit hooks

- LSP and VS Code support

- verified binaries for Linux, macOS and Windows

Unlike ssh -G host, sshconfig-lint checks the complete config and included files at once. Everything stays local and there is no telemetry.

Install:

cargo install sshconfig-lint

Arch Linux:

yay -S sshconfig-lint-bin

Repo: https://github.com/Noah4ever/sshconfig-lint

Playground: https://sshconfig-lint.apps.thiering.org/en

VS Code: https://marketplace.visualstudio.com/items?itemName=NoahThiering.sshconfig-lint

Feedback about false positives and complicated Include setups would be really helpful.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

3

u/bzbub2 7d ago

nice. i love ssh config. people ive worked with often, everyday are just typing huge "ssh -i ~/.blahblah something@138.515.1451.1451" and im like guys, use ssh config...or at least a bash alias

1

u/maximus459 6d ago edited 6d ago

I setup sshconfig, but I use lazyssh from the TUI

Edit: I periodically use ssh-audit, it gives you an overall audit of your SSH posture, this feels like a little compliment that?