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.
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.
On your local machine under ~/.ssh/config you can add something like
#PERSONAL
Host vpn-us
HostName 1.2.3.4
User my_fun_username
Port 1212
now you can ssh usingssh vpn-us
(above is the same as the following command --> ssh my_fun_username@1.2.3.4 -p1212)
$ cat .ssh/config
# Fictitious example
Include work.config
Include personal.config
$
https://man7.org/linux/man-pages/man5/ssh_config.5.html $ grep '^Host' .ssh/<config file> | awk '{print $2}' | while read hst; do ssh $hst '<remote command>' 2> /dev/null < /dev/null; doneUmm, DNS?
> with feedback, the project will move closer to the goal
What goal? That was the question you replied to.
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?
I would personally prefer using well-known tools over installing someone's latest project to handle something as sensitive as my SSH credentials.
Installing code instead of editing my .ssh/config seems like a gigantic risk.
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.
That can be done with a simple awk/fzf script, which would even allow me to interactively chose the hosts from the ones configured in the ssh config.
> How about managing both hosts and users so that I can easily log into a system as different users for different purposes?
The ssh config already allows doing that:
Host prod-as-foo
HostName domain.of.prod.server
User foo
Identity File ~./ssh/foo.key
Host prod-as-bar
HostName domain.of.prod.server
User bar
Identity File ~./ssh/bar.key
> How about adding some security features to make key management more secure than the standard "everything in the .ssh directory" strategy?IdentityFile keys can be setup to be symmetrically encrypted, requiring a password on use.
The keyfiles can also be loaded via `ssh-agent(1)`, allowing to directly use non-local keyfiles (source: `man ssh`)
> Maybe add some SCP/SFTP features so that moving files from host to host is easier.
Both `scp` and `sftp` already use the ssh config file.
For example:
Specifying different keys different servers
Host github.com
User git
IdentityFile ~/.ssh/id_rsa_github
Host myserver User username
IdentityFile ~/.ssh/id_rsa_myserver
Reuse SSH connections for multiple sessionshttps://blog.scottlowe.org/2015/12/11/using-ssh-multiplexing...
https://blog.poespas.me/posts/2024/04/27-optimizing-ssh-conn...
Host *
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.