bretth / sera Goto Github PK
View Code? Open in Web Editor NEWExecute python click commands on a remote server without requiring a vpn, open inbound ports, or port knocking.
License: Other
Execute python click commands on a remote server without requiring a vpn, open inbound ports, or port knocking.
License: Other
We need to be able to handle a bad or malicious payload that doesn't decrypt successfully.
A malicious user could run a compromised version of sera and receive commands and potentially the sera watcher's password.
When I want to issue a command adding sera -w [watcher]
before each command is tedious so I want to create a shortcut or simple alias for that watcher so that I can issue a command directly.
When I want to change an environment variable in a program other than sera I want to export that variable to an env file on a path.
Create the signing key:
sera create signature
Create the public private keypair:
sera create keypair
Create the watcher aws api keypair
sera create access
When a watcher receives a public key swap the first time it must reply by signing it's public key with a signing key known by the client so that the client knows that it is not a malicious watcher.
As an added security measure the signing key is only used the once to add the watcher after which it is removed.
A .allowed_sera_clients file defines what clients can issue commands.
The file contains a list of public keys.
When putting environment variables into a public repository I need to encrypt them and have them unencrypted on the server before use.
On the client git ignore *.secret then:
$ sera encrypt -R *.secret
$ enter password: ****** < creates *.nacl files >
$ git add *.nacl`
On the server:
$ sera -w ubuntu1 decrypt -R /path/to/files
$ enter password: *****
Register with:
entry_points = {
'sera.command': [
'main.some_command = myns.mypkg.mymodule:the_command'
]
},
entry_points = {
'sera.group': [
'some_group = myns.mypkg.mymodule:the_group'
]
},
entry_points = {
'sera.collection': [
'some_cli_collection = myns.mypkg.mymodule:the_cli'
]
Override:
SERA_COLLECTION=myns.mypkg.mymodule:the_cli;...
SERA_GROUP=
To use them
import pkg_resources
named_objects = {}
for ep in pkg_resources.iter_entry_points(group='sera.collection'):
...
The underlying provider needs to handle messages that haven't been deleted in the system
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.