{"id":13844010,"url":"https://github.com/euske/pyrexecd","last_synced_at":"2025-12-24T14:16:09.588Z","repository":{"id":15525566,"uuid":"18260053","full_name":"euske/pyrexecd","owner":"euske","description":"Standalone SSH server for Windows","archived":false,"fork":false,"pushed_at":"2023-07-05T12:53:15.000Z","size":152,"stargazers_count":223,"open_issues_count":3,"forks_count":19,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-06-16T18:18:06.630Z","etag":null,"topics":["python","ssh-server","windows"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/euske.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2014-03-30T08:03:47.000Z","updated_at":"2025-03-24T00:04:58.000Z","dependencies_parsed_at":"2022-08-04T05:00:11.804Z","dependency_job_id":"664463b7-8768-4592-86e5-a89307104f0d","html_url":"https://github.com/euske/pyrexecd","commit_stats":{"total_commits":76,"total_committers":3,"mean_commits":"25.333333333333332","dds":0.02631578947368418,"last_synced_commit":"137d68e3b136136556ba3e9906f0038cbcb070d2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/euske/pyrexecd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euske%2Fpyrexecd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euske%2Fpyrexecd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euske%2Fpyrexecd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euske%2Fpyrexecd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/euske","download_url":"https://codeload.github.com/euske/pyrexecd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euske%2Fpyrexecd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264902741,"owners_count":23681118,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","ssh-server","windows"],"created_at":"2024-08-04T17:02:32.575Z","updated_at":"2025-12-24T14:16:09.583Z","avatar_url":"https://github.com/euske.png","language":"Python","funding_links":[],"categories":["Python (1887)","Python"],"sub_categories":[],"readme":"# PyRexecd\r\n\r\nPyRexecd is a standalone SSH server for Windows.\r\n\r\n![PyRexecd Screenshot](docs/pyrexecd.gif)\r\n\r\n## Features:\r\n\r\n  * Standalone Win32 app (not a service) that resides in SysTray.\r\n  * Supports a single user / pubkey auth only.\r\n  * Notifies incoming connections via popup.\r\n  * Sends/Receives the clipboard text via stdin/stdout.\r\n  * PyPI Project page: https://pypi.python.org/pypi/PyRexecd/\r\n\r\n## Prerequisites:\r\n\r\n  * Python 3 - http://www.python.org/\r\n  * Paramiko - http://www.paramiko.org/\r\n  * PyWin32 - http://sourceforge.net/projects/pywin32/\r\n  * cx_Freeze (optional) - https://pypi.python.org/pypi/cx_Freeze\r\n\r\n## How to Use:\r\n\r\n  1. `\u003e pip install pyrexecd`\r\n  1. Run `PyRexec.pyw`. \u003cbr\u003e\r\n     It generates a new host key and opens a config directory\r\n     (`AppData\\Roaming\\PyRexecd`).\r\n  1. Put your public key into the config dir. \u003cbr\u003e\r\n    `\u003e copy your\\id_ed25519.pub authorized_keys`\r\n  1. Run `PyRexec.pyw` to start the server.\r\n  1. Log into the machine via 2200/tcp.\u003cbr\u003e\r\n    `$ ssh -p 2200 windows`\r\n\r\n## Command Line Syntax:\r\n\r\n    \u003e pyrexecd.exe [-d] [-l logfile] [-s sshdir] [-L addr] [-p port]\r\n                   [-c cmdexe] [-u username] [-a authkeys] [-h homedir]\r\n\t\t   ssh_host_key ...\r\n\r\n  * `-d` : Turns on Debug mode (verbose logging).\r\n  * `-l logfile` : Log file path (default: `pyrexecd.log`).\r\n  * `-s sshdir` : Config directory path. (default: `AppData\\Roaming\\PyRexecd`)\r\n  * `-L a.b.c.d` : Specifies the listen address (default: `127.0.0.1`).\r\n  * `-p port` : Specifies the listen port (default: `2200`).\r\n  * `-c cmdexe` : cmd.exe path. (default: `cmd.exe`)\r\n  * `-u username` : Username.\r\n  * `-a authkeys` : authorized_keys path. (default: `authorized_keys`)\r\n  * `-h homedir` : Home directory path. (default: `%UserProfile%`)\r\n\r\n## Special commands:\r\n\r\n  Certain SSH command is recognized as special commands:\r\n\r\n  * `@clipget` : Receives the clipboard text from Windows.\u003cbr\u003e\r\n    `$ ssh windows @clipget \u003e clipboard.txt`\r\n  * `@clipset` : Sends the clipboard text to Windows.\u003cbr\u003e\r\n    `$ echo foo | ssh windows @clipset`\r\n  * `@open`, `@edit`, and `@print` : Windows shell operation.\r\n    The target pathname should be given from stdin.\u003cbr\u003e\r\n    `$ echo C:\\User\\euske\\foo.txt | ssh windows @edit`\r\n\r\n## How to Build .exe (requires cx_Freeze):\r\n\r\n    \u003e pip install cx_Freeze\r\n    \u003e python setup_exe.py build\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feuske%2Fpyrexecd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feuske%2Fpyrexecd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feuske%2Fpyrexecd/lists"}