Skip to main content

SSH eXtensions

Project description

sshx (SSH eXtensions)

Build Status codecov license Docs Status

sshx is a lightweight wrapper for ssh/scp command, which has the following features:

  • Remember your ssh accounts safely.
  • Connect to your account without typing password.
  • Set jump hosts for your connection.
  • Create ssh port forwardings without typing password.
  • Create socks5 proxy by ssh dynamic port forwarding.
  • Enable jump hosts for your port forwardings.
  • Copy files from/to your account without typing password.
  • Enable jump hosts for your scp connection.
  • Execute remote command without typing password.
  • Enable jump hosts for executing command.
  • Install ssh public keys to remote server.
  • Enable jump hosts for public key installation.

Read full documentation on ReadTheDocs.

Installation

pip install sshx

Supported platform

  • Linux
  • macOS
  • WSL/cygwin/msys2 on Windows

Attention:

  • Native Windows support was removed.
  • Python 2 support was removed.

Requirements

  • Python >= 3.6
  • openssh-clients: ssh, scp, ssh-keygen

Quick Start

  1. Initialization.

    Perform only once after you've installed sshx.

    sshx init
    
  2. Adding an account.

    sshx add myhost -l test@192.168.9.155
    

    (This command will ask you to type your password and sshx would store the encrypted password.)

  3. Connect to the account.

    sshx connect myhost
    

Changelog

0.31.0 (2020-02-24)

New Features

  • add --extras for connect command
  • add command copyid
  • use ssh_config for jump hosts instead of -J/-oProxyJump
  • add ssh_config for jump connection

Fixes

  • fix port for account.to_ssh_config()
  • add retry for SSHPexpect.run to fix retry with background
  • encrypt identity passphrase
  • add --bind for command socks to replace -p

Docs

  • fix readthedocs links in README.md
  • update README.md to reference to sphinx document
  • add sphinx docs

Others

  • fix readthedocs build
  • add bump_version.sh
  • fix filemode of private key of test data

0.27.1 (2020-02-14)

New Features

  • add --forever option to keep ssh connection alive forever
  • add socks via
  • add daemonize for running in background
  • add security option

Fixes

  • set expect() to never timeout for foreground
  • fix timeout of forward & socks
  • fix scp with jump and add tests
  • fix local variable 'p' referenced before assignment

Refactorings

  • update the sshwrap to oop style
  • update FunctionalTest.test_connect
  • use class to encapsulate the configuration

Docs

  • update CHANGELOG.md & README.md

Others

  • update .travis.yml

0.23.1 (2020-01-06)

Fixes

  • fix password echo when network is bad

Docs

  • update CHANGELOG.md

0.23.0 (2020-01-03)

New Features

  • add order for click commands
  • add click cli

Fixes

  • fix tests
  • fix expecting and interact
  • fix password revealing when reconnecting failed

Refactorings

  • remove redundant code

Docs

  • update CHANGELOG.md
  • update help

Others

  • remove osx & fix pipenv python version
  • remove legacy .travis/

0.21.9 (2019-11-26)

New Features

  • add keep alive & retry config
  • add -b/--background for forward & socks command

Fixes

  • handle_update

Docs

  • update CHANGELOG
  • add global config & remove some windows stuff

0.19.8 (2019-10-09)

New Features

  • add sort and reverse for command list
  • add command exec

Fixes

  • (update): fix rename account
  • fix find_vias
  • fix update error

Refactorings

  • remove interact for exec
  • remove win cmd support

Docs

  • update CHANGELOG.md
  • update README.md for command exec

Others

  • fix travis install script
  • use pipenv to replace pip
  • set only test in osx for master branch

0.17.5 (2019-09-21)

New Features

  • add socks command
  • add debug switch
  • add command show

Fixes

  • fix unittest
  • fix uploading failure on OSX

Refactorings

  • deprecate ssh_pexpect()
  • merge the interact and non interact version of ssh_pexpect

Docs

  • update CHANGELOG.md
  • update README.md
  • update README.md

Others

  • remove python < 3.6

0.4.3 (2019-07-14)

New Features

  • remove python 2 support

Others

  • remove python 3.7 from travis ci
  • remote auto-changelog
  • add auto-changelog

0.3.1 (2019-07-13)

New Features

  • add logging

Fixes

  • remove prints

Others

  • add auto deployment to PYPI

0.3.0 (2019-07-12)

New Features

  • add scp via multiple jump hosts
  • add connect via multiple jump hosts
  • add jump host for scp
  • add scp command
  • forward without a shell
  • add sshx forward command

Fixes

  • fix tests.test_connect

0.2.1 (2019-06-23)

New Features

  • add via argument for connect

0.2.0 (2019-06-23)

New Features

  • add jump host in command line
  • add jump connection for pexpect

Fixes

  • fix jump connection error

Refactorings

  • change some function names
  • Use Account in sshwrap
  • Encapsulate the config and account into class

Others

  • Restrict travis building branches

0.1.0 (2018-10-18)

New Features

  • Add test for add command's abbreviation
  • Add abbrev syntax for add command
  • Add auto-adjust window size

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sshx-0.31.0.tar.gz (23.3 kB view details)

Uploaded Source

Built Distribution

sshx-0.31.0-py2.py3-none-any.whl (38.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file sshx-0.31.0.tar.gz.

File metadata

  • Download URL: sshx-0.31.0.tar.gz
  • Upload date:
  • Size: 23.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.7

File hashes

Hashes for sshx-0.31.0.tar.gz
Algorithm Hash digest
SHA256 2becb10cb82b0e119c801e62729fd619f9123ac5d697b0b5492071af9771056a
MD5 462e7cba683cc7b1b3340420afe7fed8
BLAKE2b-256 4fe2d2d431878ebda704f7b994348e7e92ed8a20c800373b6e5e04cd0f9816c0

See more details on using hashes here.

Provenance

File details

Details for the file sshx-0.31.0-py2.py3-none-any.whl.

File metadata

  • Download URL: sshx-0.31.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 38.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.7

File hashes

Hashes for sshx-0.31.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3dd27c5bf3ae7710cbe5a5dd14593cb975f1dbaaecdad2c04c8e99d923c7090e
MD5 e938c11d03435a8e26daec68e56f34bf
BLAKE2b-256 36fc77dc73823dad582f984dbefb9d734024008467720e72243ac3afd679f92a

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page