Show HN: I built a simple, open-source tool to manage servers and SSH keys
Viking is a tool for managing SSH keys and remote machines, allowing users to add, generate, and copy keys, execute commands, and customize configuration directories. It is open-source under the MIT License.
Read original articleViking is a tool designed for managing SSH keys and remote machines, facilitating operations on bare metal servers. It allows users to manage SSH keys by adding, generating, and copying them, as well as managing remote machines by adding them and executing commands. Users can also set a custom directory for configuration files. Installation of Viking can be done using Go, with specific commands provided for Unix and Windows environments. Usage examples include adding a machine, executing commands, connecting to a machine, adding SSH keys from files, generating new SSH keys, and copying public SSH keys. Viking is licensed under the MIT License, and further details can be found on its GitHub repository.
- Viking simplifies SSH key and remote machine management.
- It supports custom configuration directories.
- Installation is straightforward via Go for multiple operating systems.
- Users can execute commands and manage SSH keys easily.
- The project is open-source under the MIT License.
Related
SSH has become our universal (Unix) external access protocol
SSH is widely used at a university for remote access. Organizations prefer a single VPN for security in low external access environments. WireGuard is suggested for personal use due to its security advantages over SSH.
Show HN: Vdm, a sane alternative to e.g. Git submodules
vdm is a versioned-dependency manager that simplifies external dependency management across programming languages. It requires Git, supports YAML/JSON spec files, and offers future enhancements for synchronization and remote types.
GitOpper: GitOps Without Kubernetes
Gitopper is a system administration tool for managing Git operations without Kubernetes, featuring sparse checkouts, SSH authentication, metrics export, and support for canary deployments and rollbacks.
Show HN: Valkey-Operator Kubernetes Operator for Valkey (Redis Fork)
The valkey-operator GitHub repository facilitates provisioning Valkey (Redis) clusters in Kubernetes, requiring specific software versions and providing installation and uninstallation instructions along with licensing details.
I Made an Extended Version of Vimtutor – Introducing Vimtutor Sequel
The vimtutor-sequel GitHub repository provides advanced Vim lessons, including commands and tutorials. Installation is available via Homebrew or manual cloning, and it is licensed under the MIT License.
- Some users appreciate the effort behind the project and encourage the creator, while others question its necessity and the problems it aims to solve.
- Several commenters suggest that existing solutions, like SSH config files and tools like Ansible, already address similar needs.
- Concerns about security and trust in the tool are raised, particularly regarding the handling of SSH keys.
- Users express a desire for clearer use cases and advantages of using Viking over traditional methods.
- There is interest in comparing Viking to other tools in the SSH management space.
1. Great job on shipping! Whether or not the people in this thread find this tool useful, I want to congratulate you on putting together something you're ready to share with the world.
2. I'd love to hear the story of what prompted you to create this tool. Was it an issue you had? Did you set out to make something easier?
3. Not everything has to be useful to everybody. It's OK if this is something you find useful and no one else does.
Cheers
Please add some use-cases to make it clear where exactly does it come in, because once I add a key in my ssh config, I'm pretty much there. For more complicated tasks I use ansible.
$ viking machine add --name deathstar --key starkey 168.112.216.50
$ viking exec --tty deathstar /bin/bash
Over putting the following in my ~/.ssh/config Host deathstar
HostName 168.112.216.50
User my_user
IdentityFile ~/.ssh/starkey
And then just typing $ ssh deathstar
?
Many questions...
You have no information about who you are or what you've done and you expect me to trust you with ssh keys and remotes?
The go.sum is concerning as well because now I need to trust all of those.
Before I provide any feedback, I’m curious…
Your GitHub account appears to be a fresh account, using a pseudonym and a DuckDuckGo email address. What’s the reason for all of that? Are you a new developer? Did you simply not have a GitHub account because you never needed it? Is it just some privacy-related reason? Some other reason(s)?
I’d love some clarification on that, if you don’t mind.
To be clear, it’s perfectly fine to not have had a GitHub account—it’s just a bit unsettling when the very first project from a new and pseudonymous account is one dealing with servers and SSH keys.
You are .pub is meant to be shared; even publicly. It's fine to have one ssh key for everything. It's also hard to think about a scenario where one ssh key in your machine is compromised, but not the others.
My company currently uses YubiKeys to support hardware-based individual SSH keys. These SSH keys are distributed with Ansible. It works but is cumbersome and lacks a single pane of glass.
What we would like to have: a list of servers, a list of users, user roles (via sudoers), and a WebUI to manage all of it. And I don't know of any tool to do this. Of course, there are tools like Teleport or SSH CA instead of SSH keys, but they are for larger organizations and are overkill for my company.
EDIT: I was wrong. See comments.
Does anyone have any suggestions?
So I understand the desire to manage both of those tasks, connecting and persisting, from one tool. I wrote a similar little utility that does this by adding a persist option to built-in ssh. https://github.com/emileindik/slosh
Seeing this passion is great! TBH, some of the negative comments here might be warranted: SSH is an especially important and tricky area to start in as your first Github project or for those inexperienced in security.
However, we're always looking for people at Userify to help us build the next wave of SSH UX and who aren't afraid to put something out there. It's a lot of work to get things built and it's very exciting to see some new ideas. Hit me up if you want to talk!
Related
SSH has become our universal (Unix) external access protocol
SSH is widely used at a university for remote access. Organizations prefer a single VPN for security in low external access environments. WireGuard is suggested for personal use due to its security advantages over SSH.
Show HN: Vdm, a sane alternative to e.g. Git submodules
vdm is a versioned-dependency manager that simplifies external dependency management across programming languages. It requires Git, supports YAML/JSON spec files, and offers future enhancements for synchronization and remote types.
GitOpper: GitOps Without Kubernetes
Gitopper is a system administration tool for managing Git operations without Kubernetes, featuring sparse checkouts, SSH authentication, metrics export, and support for canary deployments and rollbacks.
Show HN: Valkey-Operator Kubernetes Operator for Valkey (Redis Fork)
The valkey-operator GitHub repository facilitates provisioning Valkey (Redis) clusters in Kubernetes, requiring specific software versions and providing installation and uninstallation instructions along with licensing details.
I Made an Extended Version of Vimtutor – Introducing Vimtutor Sequel
The vimtutor-sequel GitHub repository provides advanced Vim lessons, including commands and tutorials. Installation is available via Homebrew or manual cloning, and it is licensed under the MIT License.