Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ssh-lite

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ssh-lite

An easy encapsulation for paramiko library which contains only common operations (ssh, sftp, expect..)

  • 1.9
  • PyPI
  • Socket score

Maintainers
1

SSH-Lite

An easy encapsulation for paramiko library which contains only common operations, useful for automatic test and CI/CD deploy.

Updates:

  • Version 1.9 supports python2 code for old projects.
  • Version 1.7 is a bugfix version that fixes bugs in doc and lower the chance of messy code (bc multi bytes character splits into different segments).
  • Version 1.5 is a bugfix version that handles possible UnicodeEncodeError of terminal output when using an actually bytesIO terminal as debug_file (i.e. stdout).
  • Version 1.4 is an enhance version that supports debug info redirection and expect-fail-assertion.
  • Version 1.2 is a bugfix version that supports servers without SFTP service (e.g. Gateway Servers).

Features

  • Interactive shell commands without blocking

    • send for sending a command only
    • send_and_read is the most common, for sending a command and read all returnes in a timeout period (timeout will be updated after receiving any bytes)
    • get_buff for reading all buffers from the terminal in a timeout period
  • Uploading or downloading files between local and remote server

  • Expect function (may raise an exception for timeout or any unexpect pattern you set)

  • Grep function and keys abbreviations

  • Output redirection

QuickStart

install

.. code:: shell

pip install ssh-lite

or update

.. code:: shell

pip install -U ssh-lite

a simple example

.. code:: python

from ssh_lite import Server

ci = Server("127.0.0.1", "123456", "root") ci.send_and_read("") # waiting connection output done, avoid getting extra output before "ls -l" like "Last login: Tue ..." print(ci.send_and_read("ls -l")) del ci

the effect is like

::

ls -l total 1736 -rw-r--r-- 1 root root 1775417 Aug 25 2019 get-pip.py -rwxrwxrwx 1 root root 289 Feb 20 12:00 temp.py -rwxrwxrwx 1 root root 136 Nov 22 21:18 upload

another little complex example to explain the functions

.. code:: python

from ssh_lite import Server, KeyAbbr

remote = "/docker_binding_path" file = "test.file"

with Server("127.0.0.1", "123456", "root", port=22, key_path=None) as ci: # type: Server # rsa keys are supported ci.debug = True # to see server inputs and outputs ci.get_file("/a_log_file_to_get", ".") # getting files doesn't need destination filename ci.send_and_read("mkdir -p " + remote, timeout=1) ci.send_and_read("rm -f {}*".format(remote), timeout=1) ci.put_file("prepare/" + file, remote + file) # putting files strictly need destination filename ci.send_and_read("", timeout=1) cmd = 'docker exec -i container_name curl -v "http://127.0.0.1:9990/upload?file=/reference_path/{}&uri=me"'.format( file) print("inner cmd is: {}".format(cmd)) ci.send(cmd) ci.expect("< HTTP/1.1 200 OK", timeout=30, failpat=["< HTTP/1.1 4", "< HTTP/1.1 5"])
# will raise an exception if we cannot see 200 OK response in 30 secs or if we find any 4xx 5xx response ci.send(KeyAbbr.CTRL_C, end="") # sending a CTRL+C to exit the HTTP2 long connection ci.send('exit') # exit from container to release the connection

Bug report

  • Issues and bugs report to rainydew@qq.com.
  • Homepage icon leads to my Github project page, issues / PRs / stars are welcomed :)

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc