| Name | exssh JSON | 
            
| Version | 
                  0.1.1
                   
                  JSON | 
            
 | download  | 
            
| home_page | None  | 
            
| Summary | Provide automation capability for any ssh client. | 
            | upload_time | 2025-10-21 17:23:25 | 
            | maintainer | None | 
            
            | docs_url | None | 
            | author | None | 
            
            | requires_python | >=3.8 | 
            
            
            | license | None | 
            | keywords | 
                
                    automation
                
                     expect
                
                     mosh
                
                     ssh
                
                     zssh
                 | 
            | VCS | 
                
                     | 
                
            
            | bugtrack_url | 
                
                 | 
             
            
            | requirements | 
                
                  No requirements were recorded.
                
             | 
            
| Travis-CI | 
                
                   No Travis.
                
             | 
            | coveralls test coverage | 
                
                   No coveralls.
                
             | 
        
        
            
            # exssh
Provide automation capability for any ssh client.
## Install
`pip install exssh`
with bitwarden cli support:
`pip install exssh[bitwarden]`
## Usage
- `CONNECT_CONFIG` connection config file (default: ~/.ssh/connect.conf)
- `EXPECT_CONFIG` expect config file (default: ~/.ssh/expect.conf)
- `COPY_CONFIG` copy config file (default: ~/.ssh/copy.conf)
- `PROG` ssh client program (default: ssh)
- `EXTRA` extra parameter for ssh client program
`python3 -m exssh [-p PORT] [--timeout TIMEOUT] [--connect-config CONNECT_CONFIG] [--expect-config EXPECT_CONFIG] [--copy-config COPY_CONFIG] [--prog PROG] [--extra EXTRA] host`
### CONNECT_CONFIG
``` config
[*]
prog=zssh
-z=^\\
extra=-t "tmux new-session -A -s main"
[*-vps]
prog=mosh
--predict=experimental
--predict-overwrite=
```
- config section title is matching ssh host of ~/.ssh/config
- prog and extra is the same of command argument
- other configs are parameters specific to the choosing prog
### EXPECT_CONFIG
``` config
[ssh-host]
prompt = Welcome to HOST
user = Username
password = P@ssw0rd
```
- config section title is matching ssh host of ~/.ssh/config
- prompt is the indicator of successful connection in case not autodetected
- other configs key is trigger keyword, value is auto fill response
### COPY_CONFIG
```config
[*]
start=b'\x21\x21'
end=b'\x26'
sshid=~/.ssh/id_ed25519.pub
hostname=/etc/hostname
```
In this example, when connected in a session:
type `!!sshid&` will copy content of `~/.ssh/id_ed25519.pub` into clipboard
type `!!hostname&` will copy content of `/etc/hostname` into clipboard
if `start` not defined, default to `\x60\x60`
if `end` not defined, default to `\x09`
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "exssh",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "automation, expect, mosh, ssh, zssh",
    "author": null,
    "author_email": "darkclip <darkclip@hanv.dev>",
    "download_url": "https://files.pythonhosted.org/packages/c5/85/e98b1b154b4ec44efcc6bf87919373acdb90f43138867d8ae5dc7b3b6499/exssh-0.1.1.tar.gz",
    "platform": null,
    "description": "# exssh\n\nProvide automation capability for any ssh client.\n\n## Install\n\n`pip install exssh`\n\nwith bitwarden cli support:\n\n`pip install exssh[bitwarden]`\n\n\n## Usage\n\n- `CONNECT_CONFIG` connection config file (default: ~/.ssh/connect.conf)\n- `EXPECT_CONFIG` expect config file (default: ~/.ssh/expect.conf)\n- `COPY_CONFIG` copy config file (default: ~/.ssh/copy.conf)\n- `PROG` ssh client program (default: ssh)\n- `EXTRA` extra parameter for ssh client program\n\n`python3 -m exssh [-p PORT] [--timeout TIMEOUT] [--connect-config CONNECT_CONFIG] [--expect-config EXPECT_CONFIG] [--copy-config COPY_CONFIG] [--prog PROG] [--extra EXTRA] host`\n\n### CONNECT_CONFIG\n\n``` config\n[*]\nprog=zssh\n-z=^\\\\\nextra=-t \"tmux new-session -A -s main\"\n\n[*-vps]\nprog=mosh\n--predict=experimental\n--predict-overwrite=\n```\n\n- config section title is matching ssh host of ~/.ssh/config\n- prog and extra is the same of command argument\n- other configs are parameters specific to the choosing prog\n\n### EXPECT_CONFIG\n\n``` config\n[ssh-host]\nprompt = Welcome to HOST\nuser = Username\npassword = P@ssw0rd\n```\n\n- config section title is matching ssh host of ~/.ssh/config\n- prompt is the indicator of successful connection in case not autodetected\n- other configs key is trigger keyword, value is auto fill response\n\n### COPY_CONFIG\n\n```config\n[*]\nstart=b'\\x21\\x21'\nend=b'\\x26'\nsshid=~/.ssh/id_ed25519.pub\nhostname=/etc/hostname\n```\n\nIn this example, when connected in a session:\ntype `!!sshid&` will copy content of `~/.ssh/id_ed25519.pub` into clipboard\ntype `!!hostname&` will copy content of `/etc/hostname` into clipboard\n\nif `start` not defined, default to `\\x60\\x60`\nif `end` not defined, default to `\\x09`\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Provide automation capability for any ssh client.",
    "version": "0.1.1",
    "project_urls": {
        "documentation": "https://github.com/darkclip/exssh",
        "homepage": "https://github.com/darkclip/exssh",
        "repository": "https://github.com/darkclip/exssh"
    },
    "split_keywords": [
        "automation",
        " expect",
        " mosh",
        " ssh",
        " zssh"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "be52f83e5bc935a33a8990d3e40d8b90144590e3973015dee2c284b3b6c2641c",
                "md5": "7ed1c991eb35e35c3b7045260ab72908",
                "sha256": "4fd4d8f450fb8b58e8be12fd631ed73c4f8720d7a43ef3e9344626856ec6bcdb"
            },
            "downloads": -1,
            "filename": "exssh-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7ed1c991eb35e35c3b7045260ab72908",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 6935,
            "upload_time": "2025-10-21T17:23:23",
            "upload_time_iso_8601": "2025-10-21T17:23:23.370383Z",
            "url": "https://files.pythonhosted.org/packages/be/52/f83e5bc935a33a8990d3e40d8b90144590e3973015dee2c284b3b6c2641c/exssh-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c585e98b1b154b4ec44efcc6bf87919373acdb90f43138867d8ae5dc7b3b6499",
                "md5": "404b96a97f05e6a73e2cf61b6a57e1c4",
                "sha256": "0773f2f483f38845e4a184092389d4d84ebba122c652519908933e26f020975a"
            },
            "downloads": -1,
            "filename": "exssh-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "404b96a97f05e6a73e2cf61b6a57e1c4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 7558,
            "upload_time": "2025-10-21T17:23:25",
            "upload_time_iso_8601": "2025-10-21T17:23:25.110702Z",
            "url": "https://files.pythonhosted.org/packages/c5/85/e98b1b154b4ec44efcc6bf87919373acdb90f43138867d8ae5dc7b3b6499/exssh-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-21 17:23:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "darkclip",
    "github_project": "exssh",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "exssh"
}