Created
December 16, 2015 17:00
-
-
Save rectalogic/95f0f1ff6a2e4d440d3f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import socket | |
import threading | |
from StringIO import StringIO | |
import paramiko | |
HOST, PORT = 'localhost', 2222 | |
HOSTKEY = """ | |
-----BEGIN EC PRIVATE KEY----- | |
MHcCAQEEINnMNKzog0Cbnun+EKuFu4kcpc0iKJALw5LkC1E1x+9EoAoGCCqGSM49 | |
AwEHoUQDQgAEt11fabDR77CPL/1OUfayQ/m3C1uRI/039pBmYagk4zQ4Mxwow6L6 | |
UkKHL9pHHO3aWdUulY9OU88mT7O8Lg5hyA== | |
-----END EC PRIVATE KEY----- | |
""" | |
class AllAccessServer(paramiko.ServerInterface): | |
def check_auth_none(self, username): | |
return paramiko.AUTH_SUCCESSFUL | |
def check_auth_password(self, username, password): | |
return paramiko.AUTH_SUCCESSFUL | |
def check_auth_publickey(self, username, key): | |
return paramiko.AUTH_SUCCESSFUL | |
def check_channel_request(self, kind, chanid): | |
return paramiko.OPEN_SUCCEEDED | |
def start_server(host, port): | |
hostkey = paramiko.ECDSAKey.from_private_key(StringIO(HOSTKEY)) | |
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True) | |
server_socket.bind((host, port)) | |
server_socket.listen(10) | |
while True: | |
conn, address = server_socket.accept() | |
transport = paramiko.Transport(conn) | |
transport.load_server_moduli() | |
transport.add_server_key(hostkey) | |
transport.set_subsystem_handler("sftp", paramiko.SFTPServer, paramiko.SFTPServerInterface) | |
transport.start_server(server=AllAccessServer(), event=threading.Event()) | |
if __name__ == '__main__': | |
start_server(HOST, PORT) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment