:lock: ssh key manager written in go
This project is working in progress project
If you follow the below installation guide, you may not get the intended result
But you can express your interest by clicking star on this project.
The more star in this repository, the more nervous the maintainer will be and will focus more on this project than any other project.
$ ssh-keygen
~/.ssh/id_rsa
~/.ssh/id_rsa
as home
$ gowap add home
enter file in which to add the private key (~/.ssh/id_rsa):
enter file in which to add the public key (~/.ssh/id_rsa.pub):
...
your ssh key is added as `home`
$ gowap archive
ssh key is archived *home -> archive
$ ssh-keygen
~/.ssh/id_rsa
~/.ssh/id_rsa
as company
$ gowap add company
enter file in which to add the private key (~/.ssh/id_rsa):
enter file in which to add the public key (~/.ssh/id_rsa.pub):
...
your ssh key is added as 'company'
$ gowap list
* company
home
$ git clone git@github.com:nickname/some-awesome-project.git
$ touch some-changes
$ git add some-changes
$ git commit -m "add some-changes"
$ git push origin master
$ git clone git@github.com:personal-nickname/personal-project.git
Permission denied (publickey).
home
$ gowap checkout home
your now key is 'home'
$ git clone git@github.com:personal-nickname/personal-project.git
add
add without nuts name
this case, default nuts name set to
home
gowap add
# output
? enter file in which to add the private key /Users/user/.ssh/id_rsa
? enter file in which to add the public key /Users/user/.ssh/id_rsa.pub
? `home` is already defined, Do you want to overwrite it? Yes
INFO[0000] try to overwrite to `home` overwrite=true
INFO[0000] new nuts has been added nuts=home
add with nuts name
gowap add {:name}
# output
? enter file in which to add the private key /Users/user/.ssh/id_rsa
? enter file in which to add the public key /Users/user/.ssh/id_rsa.pub
INFO[0000] new nuts has been added nuts={:name}
add with git config
gowap add --with git
# output
? enter file in which to add the private key /Users/user/.ssh/id_rsa
? enter file in which to add the public key /Users/user/.ssh/id_rsa.pub
INFO[0000] with git configuration git={"user": "xxx", "mail": "xxx", "autoSign": true, "signKey": "xxx"}
INFO[0000] new nuts has been added nuts={:name}
remove
remove without nuts name
this case, default nuts name set to
home
gowap remove
# output:
? are you sure? Yes
INFO[0000] `home` nuts has been removed nuts=home
remove with nuts name
gowap remove {:name}
# output:
? are you sure? Yes
INFO[0000] `{:name}` nuts has been removed nuts={:name}
list
show list of nuts
gowap list
# output
* home
company
temporary
user2
search list with keyword
keyword will include follows:
- git config values
- alias name
- nuts name
gowap list --keyword {:keyword}
# output
company | git user.name "kenneth ceyer"
temporary | alias name "kenneth"
version
show current gowap version
gowap version
# output
gowap version 0.0.1
$ go get github.com/KennethanCeyer/gowap
$ gowap -v
NAME:
gowap - simple ssh swap tool
USAGE:
gowap.exe [global options] command [command options] [arguments...]
VERSION:
x.x.x
AUTHOR:
kenneth ceyer <https://github.com/KennethanCeyer>
COMMANDS:
add a add ssh profile
remove, r . remove ssh profile
list, l show list ssh profiles
archive h archive ssh profile
help, h show a list of commands or help for one command
version, v show current gowap version
...
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version
...
$ apt-get install gowap
$ brew install gowap
$ choco install gowap
gowap is under Apache 2.0 license
you can, of course. download it, use it, modify it