https://github.com/cwaldbieser/txsshadmin
Twisted Python Administrative service over SSH
https://github.com/cwaldbieser/txsshadmin
Last synced: 11 months ago
JSON representation
Twisted Python Administrative service over SSH
- Host: GitHub
- URL: https://github.com/cwaldbieser/txsshadmin
- Owner: cwaldbieser
- License: gpl-3.0
- Created: 2015-06-10T02:48:27.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2023-01-09T20:01:00.000Z (over 3 years ago)
- Last Synced: 2025-07-04T09:03:25.400Z (11 months ago)
- Language: Python
- Size: 32.2 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE.txt
Awesome Lists containing this project
README
################################################################
Administrative Services Over SSH for Twisted Python Applications
################################################################
===============================================
Create SSH Server public key / private key pair
===============================================
Example::
$ mkdir keys
$ ckeygen -b 2048 -t rsa -f keys/id_rsa
=========
Run Demos
=========
Custom protocol over SSH::
$ twistd -ny ./txsshadmin/demo.tac
Manhole REPL over SSH::
$ ./txsshadmin/manhole_repl.py
===========================
Create Your Own SSH Service
===========================
-------------------------
Create a Protocol Handler
-------------------------
Subclass `txsshadmin.proto_dispatcher.BaseHandler`. Override handler methods
you wish to customize. When the handler is created, the SSH avatar is assigned
to its `avatar` attribute. Each handler method is passed an instance of the dispatcher.
-------------------------
Create a Protocol Factory
-------------------------
Use `txsshadmin.proto_dispatcher.makeSSHDispatcherProtocolFactory()` to create
a protocol factory from your handler.
--------------------
Create an SSH Avatar
--------------------
Subclass `txsshadmin.cred_base.SSHBaseAvatar` to create an avatar for your
ssh service. Assign the protocol factory you created to its `protocolFactory`
attribute. The avatar is where you can define the capabilities of authenticated
users. A protocol handler for a service with users with various capabilities
may delegate its handlers to its avatar.
--------------
Create a Realm
--------------
The realm determines what avatar (if any) is returned when the authenticated
avatar ID and a list of interfaces is provided to the realm. The resulting
avatar should support at least one of the provided interfaces.
For a simple realm that returns only a single type of avatar, you can subclass
`txsshadmin.cred_base.SSHBaseRealm` and set the `avatarFactory` attribute to
an avatar factory. For more sophisticated realms, you can include logic that
returns different avatars based on capabilities keyed to the avatar ID.
----------------------
Create the SSH Service
----------------------
Subclass `txsshadmin.service.SSHServiceBase`. Set the `realm` attribute equal
to an instance of your realm.