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.33.5 (2021-01-18)

Fixes

  • fix keepalive options
  • fix keepalive options

Full set of changes: 0.33.3...0.33.5

0.33.3 (2020-12-25)

Fixes

  • fix unit tests
  • delete temp config file after command was executed
  • remove psutil for macOS

Docs

  • udpate CHANGELOG.md

Full set of changes: 0.33.0...0.33.3

0.33.0 (2020-07-14)

New Features

  • enable --forever by default

Fixes

  • fix crash of decryption with python 3.5

Docs

  • update CHANGELOG.md

Full set of changes: 0.32.1...0.33.0

0.32.1 (2020-03-04)

Fixes

  • add for scp via jump hosts

Docs

  • update CHANGELOG

Full set of changes: 0.32.0...0.32.1

0.32.0 (2020-03-02)

New Features

  • add future-fstrings for compatibility of python < 3.6

Refactorings

  • (forward): replace with

Docs

  • update CHANGELOG
  • add termux documentation
  • fix readthedocs badge links in README.md

Others

  • switch from unittest to pytest

Full set of changes: 0.31.0...0.32.0

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

  • udpate CHANGELOG.md
  • 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

Full set of changes: 0.27.1...0.31.0

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

Full set of changes: 0.23.1...0.27.1

0.23.1 (2020-01-06)

Fixes

  • fix password echo when network is bad

Docs

  • update CHANGELOG.md

Full set of changes: 0.23.0...0.23.1

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/

Full set of changes: 0.21.9...0.23.0

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

Full set of changes: 0.19.8...0.21.9

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

Full set of changes: 0.17.5...0.19.8

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

Full set of changes: 0.4.3...0.17.5

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

Full set of changes: 0.3.1...0.4.3

0.3.1 (2019-07-13)

New Features

  • add logging

Fixes

  • remove prints

Others

  • add auto deployment to PYPI

Full set of changes: 0.3.0...0.3.1

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

Full set of changes: 0.2.1...0.3.0

0.2.1 (2019-06-23)

New Features

  • add via argument for connect

Full set of changes: 0.2.0...0.2.1

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

Full set of changes: 0.1.0...0.2.0

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.33.5.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

sshx-0.33.5-py2.py3-none-any.whl (39.0 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: sshx-0.33.5.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.3.3 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.7

File hashes

Hashes for sshx-0.33.5.tar.gz
Algorithm Hash digest
SHA256 3bb21c4d972e66fd3d4712d849e5272e693a8272c889c3d13a4a64fbf7f19e1c
MD5 4ddf34f26a464babcea64c2a6bc4754a
BLAKE2b-256 9af6240f0e2c2e9fa2ad69068b24a1d35ad8eefd773bc34aa1528fc537ab9596

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sshx-0.33.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 39.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.3.3 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.7

File hashes

Hashes for sshx-0.33.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f05374b360a7b8c65bc438fa3e7e25790f20a2688d32c931c30dba3563c477d6
MD5 e0500afac2393ab4431303a99155c69e
BLAKE2b-256 e8f5420af552bb4652f144091d759aecdd5d3ced82825c0f0eb7c8842720425a

See more details on using hashes here.

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