Bare metal servers are awesome. They let you pick where to run your software and how to deploy it. You get full control to make the most of the server's resources. No limits, no compromises. That's real freedom.
Viking makes it easier to work with them.
NAME:
viking - Manage your SSH keys and remote machines
USAGE:
viking [global options] command [command options]
VERSION:
v1.0
COMMANDS:
exec Execute shell command on machine
copy, cp Copy files/folders between local and remote machine
key Manage SSH keys
machine Manage your machines
config Get config directory path
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version
See releases for pre-built binaries.
On Unix:
env CGO_ENABLED=0 go install -ldflags="-s -w" github.com/d3witt/viking@latest
On Windows cmd:
set CGO_ENABLED=0
go install -ldflags="-s -w" github.com/d3witt/viking@latest
On Windows powershell:
$env:CGO_ENABLED = '0'
go install -ldflags="-s -w" github.com/d3witt/viking@latest
$ viking machine add --name deathstar --key starkey 168.112.216.50 [email protected]:3000 73.30.62.32:3001
Machine deathstar added.
Note
The key flag is not required. If a key is not specified, SSH Agent will be used to connect to the server.
$ viking exec deathstar echo 1234
168.112.216.50: 1234
61.22.128.69: 1234
73.30.62.32: 1234
$ viking exec --tty deathstar /bin/bash
root@deathstar:~$
$ viking cp /tmp/file.txt deathstar:/tmp/
Success: 3, Errors: 0
$ viking key add --name starkey --passphrase dart ./id_rsa_star
Key starkey added.
$ viking key generate --name starkey2
Key starkey2 added.
$ viking key copy starkey2
Public key copied to your clipboard.
Viking saves data locally. Set VIKING_CONFIG_DIR
env variable for a custom directory. Use viking config
to check the current config folder.
Feel free to open a new issue, or contact me.
Viking is provided under the MIT License.