envssh - Take your environment with you
Environment (friendly) SSH client.
Brings your environment with you to the remote machine including environment variables, configuration files and other.
Note: This is POC implementation and needs a lot of refactoring and more testing!
Installing
go get -u github.com/drodil/envssh
Usage
Tool behaves much like the normal ssh client. To connect to remote, simply run:
envssh [remote]
The remote should be either hostname or IP address and can include username and port which are used to connect f.eg. user@remote:1234.
On the first run, default configuration file will be created to $HOME/.ssh/envssh.yml. See Configuration section for details how to configure the tool.
Run envssh --help
for more options.
Also check out short demo on Youtube:
Configuration
Configuration file is created automatically to $HOME/.ssh/envssh.yml. The file contains the following sections:
- global - Global level configuration which can be overriden per hostname
- env - Environment variables to move to the remote
- static - Key-value pairs that are moved to the remote
- moved - Keys from current environment that are evaluated and moved
- files - List of files that are moved from local to the remote, each containing:
- local - Local path of the file to move
- remote - Destination path on the remote
- commands - List of commands that are run on remote before starting the session
- env - Environment variables to move to the remote
- servers - Server specific configurations that override the global ones based on hostname
- host - Hostname of the remote
- port - Port that is used to connect to remote
- aliases - List of aliases for this server, can be used instead hostname in destination
- env - See above
- files - See above
- commands - See above
See example configuration file envssh.yml
Contributing
See CONTRIBUTING.md.