Coder Social home page Coder Social logo

drodil / envssh Goto Github PK

View Code? Open in Web Editor NEW
7.0 7.0 0.0 111 KB

Environment (friendly) SSH client

Home Page: https://drodil.github.io/envssh/

License: GNU General Public License v3.0

Go 100.00%
devops-tools golang hacktoberfest ssh ssh-client

envssh's Introduction

cover

Hi! I'm Heikki.

I am father, husband and Lead Developer at OP Financial Group from Kempele, Finland.

I am technology enthusiast trying to keep up with the latest things around. As a programmer I love everything from low level assembly coding to web interface design.




envssh's People

Contributors

drodil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

envssh's Issues

Wildcard for server specific configuration

Add possibility to add multiple servers to use the same configuration either with wildcard or list of hostnames. This would allow to differentiate the configuration to multiple servers without adding the configuration to global.

Automatic clean-up of copied files

When files are copied to remote they are currently left as they are. Allow user to select if they need to be cleaned up after disconnect. This would mean that existing files on the remote need to be backed up and restored when the interactive session is closed as well as the copied files need to be removed.

Add aliases for server specific config

Add aliases for the server specific configuration and allow using the alias for connection destination instead the actual hostname or IP address. This enhancement would be very handy especially if you are only using IP addresses to connect to remotes.

For example:

envssh my_computer:1234

would find out ServerConfig with alias my_computer and user hostname from there

Allow running command instead interactive shell

Allow running command on remote server instead starting remote shell (just like normal ssh client works). If there is argument after the destination, use it as the command to be run at the remote.

Fix Windows terminal size

Currently Windows defaults to terminal size 80x24 as it cannot get the correct w/h from terminal.GetSize. Also the resize event does not work due to missing SIGWINCH signal. Fix terminal size initialization and resizing.

See golang/go#20388

Add CLI option for SSH port

Add option to set SSH port with CLI option. The CLI option should override all other possibilities for the port including configuration file and remote.

Get around the AcceptEnv

SetEnv only allows setting environment variables that are allowed by the SSH server in AcceptEnv configuration. It could be possible to get around this by using "export" command right after the interactive session has been started.

Allow configuring PTY term

Allow setting the PTY term for global/server specific configuration. Default should be 'auto' and work as it does currently but it should be possible to set this up based on host or globally.

Add SSH proxy support

Add proxy support for configuration file for global config and server specific config. This means the proxy host, port, username and password. In case proxy is set use it to connect to the target server. This is possible by using the:

proxyClient := ssh.Dial(proxy)
conn := proxyClient.Dial(target) // without config
clientConn, channels, reqs := ssh.NewClientConn(conn, targetConfig)
client := ssh.NewClient(clientConn, channels, reqs)

Add CLI option for log file location

Add CLI option to set logfile location for the envssh. Pass this to the logger instance from main function to be used later on for all logging.

Allow using scp for file transfer

Current functionality to move files is.. well, interesting. Add support for user to select the file transfer mode and add possibility to use scp instead the current base64 method.

Add timeout configuration

Add timeout configuration for host/global configuration and use it when client is dialing to the server.

Support for .ssh/config

Add support for .ssh/config file and use parameters from there for timeout, identityfile, known_hosts file, sendenv, host key algorithms etc. These configurations should be applied to the system first before the envssh specific configuration which can override the ones in openssh client configuration.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.