So, congratulations on releasing your project but I'm not sure what problem are you trying to solve.
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.
- No need to remember server IPs
- Viking gives you an overview with simple machine ls and key ls commands
- A more modern and intuitive API
- Works consistently across all platforms
- Close to the Docker API
Sure, it’s only the first release. It may not seem like much now, but with feedback, the project will move closer to the goal.
Hope it helps. I use the configs as a source of truth and have a dozen or so different included files. This way the servers are grouped logically similar to ansible enventories (which I generate using the different configs). Running a command against all servers in one or more configs is simple this way:
One thing I wish ~/.ssh/config had was more slightly powerful matching. I think all you get for dynamic matches is * and ? instead of a regex syntax. Works probably 99% of the time.
If I put my server's IP in my ~/.ssh/config, I don't need to remember it, and the autogenerated `~/.ssh/known_hosts` file will ensure that the IP doesn't change after my first time connecting. Is there some functionality beyond this in terms of remembering server IPs?
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
Other than that, you can also do ssh agent forwarding, port forwarding etc. These are all crucial functions that user like me need when we access remote machines.
I hope you take this as constructive criticism and not a knockdown on your work. You've created and released something that's great but this site usually brings more advanced users.
SSH already has host and key management via the user's config file.
I somewhat understand the desire for an SSH client that behaves like the Docker shell, but it needs some features that actually set it apart.
How about putting different hosts into groups, and then running a command on the group so that every machine in the group runs the same command?
How about managing both hosts and users so that I can easily log into a system as different users for different purposes?
How about adding some security features to make key management more secure than the standard "everything in the .ssh directory" strategy?
Maybe add some SCP/SFTP features so that moving files from host to host is easier. Maybe even have a package you can install on remote hosts so that they can transfer files directly between each other when asked to from an outside terminal.
"putting different hosts into groups" - it's on my radar
"Maybe add some SCP/SFTP features so that moving files from host to host is easier." - sounds good, I'll check
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.