From 245a815267928096ea18d9d49cd395b87a7af175 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 24 Jan 2013 23:40:05 +0100 Subject: services: minimal services.txt-over-ssh provider (twisted) --- services/Makefile | 14 ++++++ services/authorized_keys | 1 + services/checkers.py | 25 +++++++++++ services/services.txt | 2 + services/test.py | 108 +++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 150 insertions(+) create mode 100644 services/Makefile create mode 100644 services/authorized_keys create mode 100644 services/checkers.py create mode 100644 services/services.txt create mode 100644 services/test.py (limited to 'services') diff --git a/services/Makefile b/services/Makefile new file mode 100644 index 00000000..a68f095d --- /dev/null +++ b/services/Makefile @@ -0,0 +1,14 @@ +help:;@cat Makefile + +export authorized_keys_file := authorized_keys +export services_file := services.txt +export host_key_file := test.key + +test-client: + ssh localhost -p 1337 2>/dev/null + +test-server: + python test.py + +$(host_key_file): + ssh-keygen -t rsa -P '' -f $@ diff --git a/services/authorized_keys b/services/authorized_keys new file mode 100644 index 00000000..dcb8bfeb --- /dev/null +++ b/services/authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7YrLdnXDRU2XEdZDu1BmgiT0Vaxplf3bfvSm+5o3g4AcR2yCv7h2D633c9uA0gq52EJ3V5m8B1ZcxqA0zqDptKwx+ZTMUGDls7StH5xpJyk9j5gf8DzyDLQPQG2IYszCH+8esKjo3BOFxfey8NaX+k6gvQsG3lyV0PjLvvIy4gDuMn6dPZfVAlwNYFOUNgwpku3W3A0d+UFyVjt3/sgZxM+8C3y6QE1gwT5/NfBbHM5vaEqjHcVq1ui+7a4iOXFGKkZDcd7EX6cQZSbCzZL7sZ0OmB1WpAsDCvIXfzX1YfNA0sso7ldSF6ZUGNgwEk1LootnQlCK/dfbM+i62SZ+1 tv@iiso diff --git a/services/checkers.py b/services/checkers.py new file mode 100644 index 00000000..dbfe1323 --- /dev/null +++ b/services/checkers.py @@ -0,0 +1,25 @@ + +import base64, binascii +from twisted.python.filepath import FilePath +from twisted.conch.checkers import SSHPublicKeyDatabase + + +class PublicKeyChecker(SSHPublicKeyDatabase): + + def __init__(self, filename): + self.filepath = FilePath(filename) + + def getAuthorizedKeysFiles(self, credentials): + return [self.filepath] + + def checkKey(self, credentials): + for line in self.filepath.open(): + parts = line.split() + if len(parts) < 2: + continue + try: + if base64.decodestring(parts[1]) == credentials.blob: + return True + except binascii.Error: + continue + return False diff --git a/services/services.txt b/services/services.txt new file mode 100644 index 00000000..a2b97670 --- /dev/null +++ b/services/services.txt @@ -0,0 +1,2 @@ +# this is a comment +TODO declare proper services format diff --git a/services/test.py b/services/test.py new file mode 100644 index 00000000..06340a54 --- /dev/null +++ b/services/test.py @@ -0,0 +1,108 @@ +#! /usr/bin/env python + +from os import environ as env + +authorized_keys_file = env.get('authorized_keys_file', '/dev/null') +services_file = env.get('services_file', '/dev/null') +host_key_file = env.get('host_key_file', '/dev/null') +host_key_pub_file = host_key_file + '.pub' + + +from checkers import PublicKeyChecker +from twisted.conch.avatar import ConchUser +from twisted.conch.ssh.connection import SSHConnection +from twisted.conch.ssh.factory import SSHFactory +from twisted.conch.ssh.keys import Key +from twisted.conch.ssh.session import SSHSession, ISession, wrapProtocol +from twisted.conch.ssh.userauth import SSHUserAuthServer +from twisted.cred.error import UnauthorizedLogin +from twisted.cred.portal import IRealm, Portal +from twisted.internet.protocol import Protocol +from twisted.internet.reactor import listenTCP, run +from twisted.python.components import registerAdapter +from zope.interface import implements + +from twisted.python.log import startLogging +from sys import stderr +startLogging(stderr) + + +class MyRealm: + implements(IRealm) + + def requestAvatar(self, avatarId, mind, *interfaces): + return interfaces[0], MyUser(), lambda: None + + +class MyUser(ConchUser): + def __init__(self): + ConchUser.__init__(self) + self.channelLookup.update({ 'session': SSHSession }) + + +class MySession: + + def __init__(self, avatar): + pass + + def getPty(self, term, windowSize, attrs): + pass + + def execCommand(self, proto, cmd): + raise Exception("no executing commands") + + def openShell(self, trans): + ep = MyProtocol() + ep.makeConnection(trans) + trans.makeConnection(wrapProtocol(ep)) + + def eofReceived(self): + pass + + def closed(self): + pass + + +registerAdapter(MySession, MyUser, ISession) + + +def slurpTextfile(filename): + file = open(filename, 'r') + try: + return file.read() + finally: + file.close() + +class MyProtocol(Protocol): + def connectionMade(self): + data = slurpTextfile(services_file).replace('\n', '\r\n') + self.transport.write(data) + self.transport.loseConnection() + + #def dataReceived(self, data): + # if data == '\r': + # data = '\r\n' + # elif data == '\x03': #^C + # self.transport.loseConnection() + # return + # self.transport.write(data) + + +class MyFactory(SSHFactory): + privateKeys = { + 'ssh-rsa': Key.fromFile(filename=host_key_file) + } + publicKeys = { + 'ssh-rsa': Key.fromFile(filename=host_key_pub_file) + } + services = { + 'ssh-userauth': SSHUserAuthServer, + 'ssh-connection': SSHConnection + } + +if __name__ == '__main__': + portal = Portal(MyRealm()) + portal.registerChecker(PublicKeyChecker(authorized_keys_file)) + MyFactory.portal = portal + listenTCP(1337, MyFactory()) + run() -- cgit v1.2.3 From 1025fa3e19d2678da41a13c2bce0846a661c0624 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 29 Jan 2013 11:58:13 +0000 Subject: add authorized_keys config for openssh-server --- services/Makefile | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'services') diff --git a/services/Makefile b/services/Makefile index a68f095d..901769b8 100644 --- a/services/Makefile +++ b/services/Makefile @@ -1,9 +1,29 @@ help:;@cat Makefile - export authorized_keys_file := authorized_keys export services_file := services.txt export host_key_file := test.key +export services_home := /opt/services + +.PHONY: authorized_keys +$(services_home)/.ssh: + mkdir $@ + chown services:services $@ + +$(services_home)/.ssh/authorized_keys: $(services_home)/.ssh $(authorized_keys_file) + cp $(authorized_keys_file) $(services_home)/.ssh/authorized_keys + @echo "restricting authorized_keys..." + @sed -i 's#^#command="/bin/cat $(services_home)/services.txt",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty #' $(services_home)/.ssh/authorized_keys + +$(services_home)/services.txt: + @echo 'make sure to configure the services correctly in $(services_home)/services.txt' + cp $(services_file) $(services_home)/services.txt + +service-user: $(services_home)/services.txt $(services_home)/.ssh/authorized_keys + @echo 'also make sure that the user is created: make create-service-user' +create-service-user: + useradd -m -r -l -f -1 -d /opt/services services + test-client: ssh localhost -p 1337 2>/dev/null -- cgit v1.2.3 From 965b2bce7b66605df16fdaf70b4da1f78ebae546 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 29 Jan 2013 14:24:23 +0000 Subject: add pigstarter to authorized_keys --- services/authorized_keys | 1 + 1 file changed, 1 insertion(+) (limited to 'services') diff --git a/services/authorized_keys b/services/authorized_keys index dcb8bfeb..a7368693 100644 --- a/services/authorized_keys +++ b/services/authorized_keys @@ -1 +1,2 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7YrLdnXDRU2XEdZDu1BmgiT0Vaxplf3bfvSm+5o3g4AcR2yCv7h2D633c9uA0gq52EJ3V5m8B1ZcxqA0zqDptKwx+ZTMUGDls7StH5xpJyk9j5gf8DzyDLQPQG2IYszCH+8esKjo3BOFxfey8NaX+k6gvQsG3lyV0PjLvvIy4gDuMn6dPZfVAlwNYFOUNgwpku3W3A0d+UFyVjt3/sgZxM+8C3y6QE1gwT5/NfBbHM5vaEqjHcVq1ui+7a4iOXFGKkZDcd7EX6cQZSbCzZL7sZ0OmB1WpAsDCvIXfzX1YfNA0sso7ldSF6ZUGNgwEk1LootnQlCK/dfbM+i62SZ+1 tv@iiso +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv9TTt4FkzT3jlQ0VS2tX/GpQO9Ef0wIQ+g96foe4qSniBwR667T1gIhURrod/p7N9oQcWRrNohjgmSBZRYA0kW6ZyqYJkLvRv54nXv6j/8Xq2nG/KVfDqL0kp8if+JGeFlQElpWJiAbGifYkopFy69QiLYU2ndR7aPbx+5qm/dcwPJ7K+n6dyePynCZadtcabm3PuBFUxGLdT9ImDXMOPfXxPMlN/3eb78byuEuHnhCIvIGLMBGx+8QTXvu7kHpZObvkbsF1xjVs9fDpwVLjh7GWdwf3BZ/agFlI24ffyqCPFnuaxUVyfUZeqf4twRsIZkTTB47lHDhYiVkyGe8gd root@pigstarter.de -- cgit v1.2.3 From 60f353a64ac890c35a327c9c2cbcbe0b7b2bc87c Mon Sep 17 00:00:00 2001 From: root Date: Tue, 29 Jan 2013 16:39:23 +0100 Subject: Add sammy@muhbaasu pubkey --- services/authorized_keys | 2 ++ 1 file changed, 2 insertions(+) (limited to 'services') diff --git a/services/authorized_keys b/services/authorized_keys index a7368693..e7298315 100644 --- a/services/authorized_keys +++ b/services/authorized_keys @@ -1,2 +1,4 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7YrLdnXDRU2XEdZDu1BmgiT0Vaxplf3bfvSm+5o3g4AcR2yCv7h2D633c9uA0gq52EJ3V5m8B1ZcxqA0zqDptKwx+ZTMUGDls7StH5xpJyk9j5gf8DzyDLQPQG2IYszCH+8esKjo3BOFxfey8NaX+k6gvQsG3lyV0PjLvvIy4gDuMn6dPZfVAlwNYFOUNgwpku3W3A0d+UFyVjt3/sgZxM+8C3y6QE1gwT5/NfBbHM5vaEqjHcVq1ui+7a4iOXFGKkZDcd7EX6cQZSbCzZL7sZ0OmB1WpAsDCvIXfzX1YfNA0sso7ldSF6ZUGNgwEk1LootnQlCK/dfbM+i62SZ+1 tv@iiso ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv9TTt4FkzT3jlQ0VS2tX/GpQO9Ef0wIQ+g96foe4qSniBwR667T1gIhURrod/p7N9oQcWRrNohjgmSBZRYA0kW6ZyqYJkLvRv54nXv6j/8Xq2nG/KVfDqL0kp8if+JGeFlQElpWJiAbGifYkopFy69QiLYU2ndR7aPbx+5qm/dcwPJ7K+n6dyePynCZadtcabm3PuBFUxGLdT9ImDXMOPfXxPMlN/3eb78byuEuHnhCIvIGLMBGx+8QTXvu7kHpZObvkbsF1xjVs9fDpwVLjh7GWdwf3BZ/agFlI24ffyqCPFnuaxUVyfUZeqf4twRsIZkTTB47lHDhYiVkyGe8gd root@pigstarter.de +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7df1RfMGNHPJe0iF6rD9DBs/4VujN6nNr7RbRCFk7HF/JzLXSn9Vcwk+3JefP4/d/bUo0h03rhQaRohDhBScrJidj2YacF6gmZOuTf3AMWprdz9D/1dDkN/ytwzGhADhqbHEWeomIllsa8Up4PvEeDcIHJGzYvuc0BbGqRk0XgxwqIrLAhdpTfEKaTbt7IzmUqEofxThTZ/4k020PKn2WDBWKQYGZJ9Ba2WzlKUXWx842ncW29oxC2faRz4M3eMPy0JMpBLkK9U3dccE75dgT/89/4ofVjM7+J3FOP3dgXzrtk+A5aN5a/veJUViQ9xdGxXvoa++iCr5q/BVRv0Bb sammy@muhbaasu.de + -- cgit v1.2.3 From 77501543d0f9aa94dcc9a814f420c43e07f09611 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 29 Jan 2013 16:42:41 +0100 Subject: //services/bin/services: initial commit --- services/bin/services | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 services/bin/services (limited to 'services') diff --git a/services/bin/services b/services/bin/services new file mode 100755 index 00000000..90d3f624 --- /dev/null +++ b/services/bin/services @@ -0,0 +1,18 @@ +#! /bin/sh +# usage: services [user@]hostname[:port] +set -euf + +user=services +hostname=${1-localhost} +port=1337 + +if echo $hostname | grep -q @; then + user=`echo $hostname | cut -d@ -f1` + hostname=`echo $hostname | cut -d@ -f2` +fi +if echo $hostname | grep -q :; then + port=`echo $hostname | cut -d: -f2` + hostname=`echo $hostname | cut -d: -f1` +fi + +ssh $user@$hostname -p $port -- cgit v1.2.3 From f9a3b1b51a469ca56f9d573832ae50c7c3e38bd6 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 29 Jan 2013 15:47:26 +0000 Subject: fix useradd issues --- services/Makefile | 14 +++++++++----- services/authorized_keys | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'services') diff --git a/services/Makefile b/services/Makefile index 901769b8..3ef670a3 100644 --- a/services/Makefile +++ b/services/Makefile @@ -5,6 +5,15 @@ export host_key_file := test.key export services_home := /opt/services .PHONY: authorized_keys + +service-user: $(services_home)/services.txt $(services_home)/.ssh/authorized_keys + @echo 'also make sure that the user is created: make create-service-user' + +create-service-user: + mkdir -p $(services_home) + rmdir $(services_home) + useradd -m -r -l -f -1 -d $(services_home) services + $(services_home)/.ssh: mkdir $@ chown services:services $@ @@ -18,11 +27,6 @@ $(services_home)/services.txt: @echo 'make sure to configure the services correctly in $(services_home)/services.txt' cp $(services_file) $(services_home)/services.txt -service-user: $(services_home)/services.txt $(services_home)/.ssh/authorized_keys - @echo 'also make sure that the user is created: make create-service-user' - -create-service-user: - useradd -m -r -l -f -1 -d /opt/services services test-client: ssh localhost -p 1337 2>/dev/null diff --git a/services/authorized_keys b/services/authorized_keys index a7368693..404f6552 100644 --- a/services/authorized_keys +++ b/services/authorized_keys @@ -1,2 +1,3 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7YrLdnXDRU2XEdZDu1BmgiT0Vaxplf3bfvSm+5o3g4AcR2yCv7h2D633c9uA0gq52EJ3V5m8B1ZcxqA0zqDptKwx+ZTMUGDls7StH5xpJyk9j5gf8DzyDLQPQG2IYszCH+8esKjo3BOFxfey8NaX+k6gvQsG3lyV0PjLvvIy4gDuMn6dPZfVAlwNYFOUNgwpku3W3A0d+UFyVjt3/sgZxM+8C3y6QE1gwT5/NfBbHM5vaEqjHcVq1ui+7a4iOXFGKkZDcd7EX6cQZSbCzZL7sZ0OmB1WpAsDCvIXfzX1YfNA0sso7ldSF6ZUGNgwEk1LootnQlCK/dfbM+i62SZ+1 tv@iiso ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv9TTt4FkzT3jlQ0VS2tX/GpQO9Ef0wIQ+g96foe4qSniBwR667T1gIhURrod/p7N9oQcWRrNohjgmSBZRYA0kW6ZyqYJkLvRv54nXv6j/8Xq2nG/KVfDqL0kp8if+JGeFlQElpWJiAbGifYkopFy69QiLYU2ndR7aPbx+5qm/dcwPJ7K+n6dyePynCZadtcabm3PuBFUxGLdT9ImDXMOPfXxPMlN/3eb78byuEuHnhCIvIGLMBGx+8QTXvu7kHpZObvkbsF1xjVs9fDpwVLjh7GWdwf3BZ/agFlI24ffyqCPFnuaxUVyfUZeqf4twRsIZkTTB47lHDhYiVkyGe8gd root@pigstarter.de +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCl3RTOHd5DLiVeUbUr/GSiKoRWknXQnbkIf+uNiFO+XxiqZVojPlumQUVhasY8UzDzj9tSDruUKXpjut50FhIO5UFAgsBeMJyoZbgY/+R+QKU00Q19+IiUtxeFol/9dCO+F4o937MC0OpAC10LbOXN/9SYIXueYk3pJxIycXwUqhYmyEqtDdVh9Rx32LBVqlBoXRHpNGPLiswV2qNe0b5p919IGcslzf1XoUzfE3a3yjk/XbWh/59xnl4V7Oe7+iQheFxOT6rFA30WYwEygs5As//ZYtxvnn0gA02gOnXJsNjOW9irlxOUeP7IOU6Ye3WRKFRR0+7PS+w8IJLag2xb makefu@pornocauster -- cgit v1.2.3 From 2da96a69e9ab02db32cdafd194ef3e5f87ca71dc Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 29 Jan 2013 17:00:43 +0100 Subject: //services services: use $services_identity_file --- services/bin/services | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'services') diff --git a/services/bin/services b/services/bin/services index 90d3f624..c142a363 100755 --- a/services/bin/services +++ b/services/bin/services @@ -1,11 +1,17 @@ #! /bin/sh # usage: services [user@]hostname[:port] +# environment: +# services_identity_file path to ssh(1) identity_file set -euf user=services hostname=${1-localhost} port=1337 +if test -n "${services_identity_file-}"; then + options="${options+$options }-i $services_identity_file" +fi + if echo $hostname | grep -q @; then user=`echo $hostname | cut -d@ -f1` hostname=`echo $hostname | cut -d@ -f2` @@ -15,4 +21,4 @@ if echo $hostname | grep -q :; then hostname=`echo $hostname | cut -d: -f1` fi -ssh $user@$hostname -p $port +ssh $options $user@$hostname -p $port -- cgit v1.2.3 From f8d90b443fb71597b7f47fb0026861fd028ffab2 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 29 Jan 2013 17:46:19 +0000 Subject: add service template --- services/services.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'services') diff --git a/services/services.txt b/services/services.txt index a2b97670..dc88cbac 100644 --- a/services/services.txt +++ b/services/services.txt @@ -1,2 +1,7 @@ -# this is a comment -TODO declare proper services format +owner: +type: +mail: +expires: +location: +services://{{hostname}}:22/ +tinc://{{hostname}}/ -- cgit v1.2.3 From ea60224f28cf702053d8fd06ef32cc683ed4aff1 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 29 Jan 2013 18:48:09 +0100 Subject: //services test.py -> test-server.py --- services/Makefile | 2 +- services/test-server.py | 108 ++++++++++++++++++++++++++++++++++++++++++++++++ services/test.py | 108 ------------------------------------------------ 3 files changed, 109 insertions(+), 109 deletions(-) create mode 100755 services/test-server.py delete mode 100644 services/test.py (limited to 'services') diff --git a/services/Makefile b/services/Makefile index 3ef670a3..61e0f529 100644 --- a/services/Makefile +++ b/services/Makefile @@ -32,7 +32,7 @@ test-client: ssh localhost -p 1337 2>/dev/null test-server: - python test.py + ./test-server.py $(host_key_file): ssh-keygen -t rsa -P '' -f $@ diff --git a/services/test-server.py b/services/test-server.py new file mode 100755 index 00000000..ce8fbaa4 --- /dev/null +++ b/services/test-server.py @@ -0,0 +1,108 @@ +#! /usr/bin/env python2 + +from os import environ as env + +authorized_keys_file = env.get('authorized_keys_file', '/dev/null') +services_file = env.get('services_file', '/dev/null') +host_key_file = env.get('host_key_file', '/dev/null') +host_key_pub_file = host_key_file + '.pub' + + +from checkers import PublicKeyChecker +from twisted.conch.avatar import ConchUser +from twisted.conch.ssh.connection import SSHConnection +from twisted.conch.ssh.factory import SSHFactory +from twisted.conch.ssh.keys import Key +from twisted.conch.ssh.session import SSHSession, ISession, wrapProtocol +from twisted.conch.ssh.userauth import SSHUserAuthServer +from twisted.cred.error import UnauthorizedLogin +from twisted.cred.portal import IRealm, Portal +from twisted.internet.protocol import Protocol +from twisted.internet.reactor import listenTCP, run +from twisted.python.components import registerAdapter +from zope.interface import implements + +from twisted.python.log import startLogging +from sys import stderr +startLogging(stderr) + + +class MyRealm: + implements(IRealm) + + def requestAvatar(self, avatarId, mind, *interfaces): + return interfaces[0], MyUser(), lambda: None + + +class MyUser(ConchUser): + def __init__(self): + ConchUser.__init__(self) + self.channelLookup.update({ 'session': SSHSession }) + + +class MySession: + + def __init__(self, avatar): + pass + + def getPty(self, term, windowSize, attrs): + pass + + def execCommand(self, proto, cmd): + raise Exception("no executing commands") + + def openShell(self, trans): + ep = MyProtocol() + ep.makeConnection(trans) + trans.makeConnection(wrapProtocol(ep)) + + def eofReceived(self): + pass + + def closed(self): + pass + + +registerAdapter(MySession, MyUser, ISession) + + +def slurpTextfile(filename): + file = open(filename, 'r') + try: + return file.read() + finally: + file.close() + +class MyProtocol(Protocol): + def connectionMade(self): + data = slurpTextfile(services_file).replace('\n', '\r\n') + self.transport.write(data) + self.transport.loseConnection() + + #def dataReceived(self, data): + # if data == '\r': + # data = '\r\n' + # elif data == '\x03': #^C + # self.transport.loseConnection() + # return + # self.transport.write(data) + + +class MyFactory(SSHFactory): + privateKeys = { + 'ssh-rsa': Key.fromFile(filename=host_key_file) + } + publicKeys = { + 'ssh-rsa': Key.fromFile(filename=host_key_pub_file) + } + services = { + 'ssh-userauth': SSHUserAuthServer, + 'ssh-connection': SSHConnection + } + +if __name__ == '__main__': + portal = Portal(MyRealm()) + portal.registerChecker(PublicKeyChecker(authorized_keys_file)) + MyFactory.portal = portal + listenTCP(1337, MyFactory()) + run() diff --git a/services/test.py b/services/test.py deleted file mode 100644 index 06340a54..00000000 --- a/services/test.py +++ /dev/null @@ -1,108 +0,0 @@ -#! /usr/bin/env python - -from os import environ as env - -authorized_keys_file = env.get('authorized_keys_file', '/dev/null') -services_file = env.get('services_file', '/dev/null') -host_key_file = env.get('host_key_file', '/dev/null') -host_key_pub_file = host_key_file + '.pub' - - -from checkers import PublicKeyChecker -from twisted.conch.avatar import ConchUser -from twisted.conch.ssh.connection import SSHConnection -from twisted.conch.ssh.factory import SSHFactory -from twisted.conch.ssh.keys import Key -from twisted.conch.ssh.session import SSHSession, ISession, wrapProtocol -from twisted.conch.ssh.userauth import SSHUserAuthServer -from twisted.cred.error import UnauthorizedLogin -from twisted.cred.portal import IRealm, Portal -from twisted.internet.protocol import Protocol -from twisted.internet.reactor import listenTCP, run -from twisted.python.components import registerAdapter -from zope.interface import implements - -from twisted.python.log import startLogging -from sys import stderr -startLogging(stderr) - - -class MyRealm: - implements(IRealm) - - def requestAvatar(self, avatarId, mind, *interfaces): - return interfaces[0], MyUser(), lambda: None - - -class MyUser(ConchUser): - def __init__(self): - ConchUser.__init__(self) - self.channelLookup.update({ 'session': SSHSession }) - - -class MySession: - - def __init__(self, avatar): - pass - - def getPty(self, term, windowSize, attrs): - pass - - def execCommand(self, proto, cmd): - raise Exception("no executing commands") - - def openShell(self, trans): - ep = MyProtocol() - ep.makeConnection(trans) - trans.makeConnection(wrapProtocol(ep)) - - def eofReceived(self): - pass - - def closed(self): - pass - - -registerAdapter(MySession, MyUser, ISession) - - -def slurpTextfile(filename): - file = open(filename, 'r') - try: - return file.read() - finally: - file.close() - -class MyProtocol(Protocol): - def connectionMade(self): - data = slurpTextfile(services_file).replace('\n', '\r\n') - self.transport.write(data) - self.transport.loseConnection() - - #def dataReceived(self, data): - # if data == '\r': - # data = '\r\n' - # elif data == '\x03': #^C - # self.transport.loseConnection() - # return - # self.transport.write(data) - - -class MyFactory(SSHFactory): - privateKeys = { - 'ssh-rsa': Key.fromFile(filename=host_key_file) - } - publicKeys = { - 'ssh-rsa': Key.fromFile(filename=host_key_pub_file) - } - services = { - 'ssh-userauth': SSHUserAuthServer, - 'ssh-connection': SSHConnection - } - -if __name__ == '__main__': - portal = Portal(MyRealm()) - portal.registerChecker(PublicKeyChecker(authorized_keys_file)) - MyFactory.portal = portal - listenTCP(1337, MyFactory()) - run() -- cgit v1.2.3 From 96d04da93bcbd42e8d1b419fea659e5eb8764437 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 29 Jan 2013 18:49:05 +0100 Subject: //services test-server: add systemd configuration --- services/etc/conf.d/krebs-services-test-server | 3 +++ .../etc/systemd/system/krebs-services-test-server.service | 14 ++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 services/etc/conf.d/krebs-services-test-server create mode 100644 services/etc/systemd/system/krebs-services-test-server.service (limited to 'services') diff --git a/services/etc/conf.d/krebs-services-test-server b/services/etc/conf.d/krebs-services-test-server new file mode 100644 index 00000000..243054f4 --- /dev/null +++ b/services/etc/conf.d/krebs-services-test-server @@ -0,0 +1,3 @@ +authorized_keys_file=/krebs/services/authorized_keys +services_file=/opt/services/services.txt +host_key_file=/opt/services/test.key diff --git a/services/etc/systemd/system/krebs-services-test-server.service b/services/etc/systemd/system/krebs-services-test-server.service new file mode 100644 index 00000000..99578cce --- /dev/null +++ b/services/etc/systemd/system/krebs-services-test-server.service @@ -0,0 +1,14 @@ +[Unit] +Description=services: provider +After=network.target + +[Service] +EnvironmentFile=/etc/conf.d/krebs-services-test-server +ExecStart=/krebs/services/test-server.py +KillMode=process +User=services +Group=services +Restart=no + +[Install] +WantedBy=multi-user.target -- cgit v1.2.3 From c17d13380945c0909adeddd2375c1c9c8aa26782 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 29 Jan 2013 18:57:49 +0100 Subject: //services test-server: log only if debug_log == 'true' --- services/Makefile | 1 + services/test-server.py | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'services') diff --git a/services/Makefile b/services/Makefile index 61e0f529..37931f47 100644 --- a/services/Makefile +++ b/services/Makefile @@ -1,5 +1,6 @@ help:;@cat Makefile export authorized_keys_file := authorized_keys +export debug_log := true export services_file := services.txt export host_key_file := test.key export services_home := /opt/services diff --git a/services/test-server.py b/services/test-server.py index ce8fbaa4..7838e0af 100755 --- a/services/test-server.py +++ b/services/test-server.py @@ -3,6 +3,7 @@ from os import environ as env authorized_keys_file = env.get('authorized_keys_file', '/dev/null') +debug_log = env.get('debug_log', 'false') services_file = env.get('services_file', '/dev/null') host_key_file = env.get('host_key_file', '/dev/null') host_key_pub_file = host_key_file + '.pub' @@ -22,9 +23,10 @@ from twisted.internet.reactor import listenTCP, run from twisted.python.components import registerAdapter from zope.interface import implements -from twisted.python.log import startLogging -from sys import stderr -startLogging(stderr) +if debug_log == 'true': + from twisted.python.log import startLogging + from sys import stderr + startLogging(stderr) class MyRealm: -- cgit v1.2.3 From 0c37512813f26c098e2c1d34c42e6b843009e9b2 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 30 Jan 2013 01:12:06 +0100 Subject: //service README: install test-server.py as systemd service on arch --- services/README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 services/README.md (limited to 'services') diff --git a/services/README.md b/services/README.md new file mode 100644 index 00000000..eff94113 --- /dev/null +++ b/services/README.md @@ -0,0 +1,28 @@ +# //services + +## install and run test-server.py as systemd service + +### install dependencies + + pacman -S python2-pyasn1 twisted + +### install systemd service and configuration + + cp /krebs/services/etc/systemd/system/krebs-services-test-server.service \ + /etc/systemd/system/ + + cp /krebs/services/etc/conf.d/krebs-services-test-server \ + /etc/conf.d/ + +### create services user + + useradd -m -r -l -f -1 -d /opt/services -k /var/empty services + +### configure test-server.py + + $EDITOR /opt/services/services.txt + +### run + + systemctl enable krebs-services-test-server + systemctl start krebs-services-test-server -- cgit v1.2.3 From 9577db8e98c94e0b8e36fed70cfd246f98f0344a Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 30 Jan 2013 01:16:39 +0100 Subject: //services README: generate test.key --- services/README.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'services') diff --git a/services/README.md b/services/README.md index eff94113..e0769bce 100644 --- a/services/README.md +++ b/services/README.md @@ -10,19 +10,16 @@ cp /krebs/services/etc/systemd/system/krebs-services-test-server.service \ /etc/systemd/system/ - cp /krebs/services/etc/conf.d/krebs-services-test-server \ /etc/conf.d/ -### create services user +### create services user and populate it's home useradd -m -r -l -f -1 -d /opt/services -k /var/empty services - -### configure test-server.py - + sudo -u services ssh-keygen -t rsa -P '' -f /opt/services/test.key $EDITOR /opt/services/services.txt -### run +### run now and every reboot - systemctl enable krebs-services-test-server systemctl start krebs-services-test-server + systemctl enable krebs-services-test-server -- cgit v1.2.3 From 46ba0880900d5696024a615ac393d485f9adfaba Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 30 Jan 2013 01:48:27 +0100 Subject: //services/bin/services: ControlMaster=no --- services/bin/services | 2 ++ 1 file changed, 2 insertions(+) (limited to 'services') diff --git a/services/bin/services b/services/bin/services index c142a363..957d197a 100755 --- a/services/bin/services +++ b/services/bin/services @@ -8,6 +8,8 @@ user=services hostname=${1-localhost} port=1337 +options="${options+$options }-o ControlMaster=no" + if test -n "${services_identity_file-}"; then options="${options+$options }-i $services_identity_file" fi -- cgit v1.2.3 From e282afbe09cc5d44b1b3329a9bc199a780be7300 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 30 Jan 2013 02:10:39 +0100 Subject: //services/bin/services: filter boring stderr --- services/bin/services | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'services') diff --git a/services/bin/services b/services/bin/services index 957d197a..113480ee 100755 --- a/services/bin/services +++ b/services/bin/services @@ -23,4 +23,11 @@ if echo $hostname | grep -q :; then hostname=`echo $hostname | cut -d: -f1` fi +exec 3>&1 +{ ssh $options $user@$hostname -p $port +} 2>&1 1>&3 | sed ' + /^Connection to '$hostname' closed/d + /^Shared connection to '$hostname' closed/d +' +exec 3>&- -- cgit v1.2.3 From 6da636908a84d1703932a5806f03301b4043a258 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 30 Jan 2013 02:13:50 +0100 Subject: //services/bin/services: fix indentation --- services/bin/services | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'services') diff --git a/services/bin/services b/services/bin/services index 113480ee..e854cbcb 100755 --- a/services/bin/services +++ b/services/bin/services @@ -25,7 +25,7 @@ fi exec 3>&1 { -ssh $options $user@$hostname -p $port + ssh $options $user@$hostname -p $port } 2>&1 1>&3 | sed ' /^Connection to '$hostname' closed/d /^Shared connection to '$hostname' closed/d -- cgit v1.2.3 From 61efc03040a5f6df520bdc7608f2035d958d16a1 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 30 Jan 2013 15:16:37 +0100 Subject: //services etc bootstrap: initial commit --- services/etc/services/bootstrap | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 services/etc/services/bootstrap (limited to 'services') diff --git a/services/etc/services/bootstrap b/services/etc/services/bootstrap new file mode 100644 index 00000000..124e77d1 --- /dev/null +++ b/services/etc/services/bootstrap @@ -0,0 +1,2 @@ +services://destroy +services://ire -- cgit v1.2.3 From ed52b2a311e2ed2a61f382de217c2fee95a51fc5 Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 30 Jan 2013 14:36:07 +0000 Subject: update bootstrap uris,services.txt --- services/etc/services/bootstrap | 7 +++++++ services/services.txt | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'services') diff --git a/services/etc/services/bootstrap b/services/etc/services/bootstrap index 124e77d1..8c848146 100644 --- a/services/etc/services/bootstrap +++ b/services/etc/services/bootstrap @@ -1,2 +1,9 @@ services://destroy services://ire +services://darth_serious:22 +services://pigstarter:22 +services://incept:22 +services://rage:22 +services://devstar:22 +services://heidi:22 +services://geisha:22 diff --git a/services/services.txt b/services/services.txt index dc88cbac..265e6d1c 100644 --- a/services/services.txt +++ b/services/services.txt @@ -3,5 +3,5 @@ type: mail: expires: location: -services://{{hostname}}:22/ -tinc://{{hostname}}/ +services://{{hostname}}:22 +tinc://{{hostname}} -- cgit v1.2.3 From 77ba7045aefd9231d8c7196fadd6cc4cf4dc3f81 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 8 Feb 2013 19:40:59 +0100 Subject: services authorized_keys: add retiolum@nomic --- services/authorized_keys | 1 + 1 file changed, 1 insertion(+) (limited to 'services') diff --git a/services/authorized_keys b/services/authorized_keys index 2eae1f4d..befd6b18 100644 --- a/services/authorized_keys +++ b/services/authorized_keys @@ -2,3 +2,4 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7YrLdnXDRU2XEdZDu1BmgiT0Vaxplf3bfvSm+5o3g ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv9TTt4FkzT3jlQ0VS2tX/GpQO9Ef0wIQ+g96foe4qSniBwR667T1gIhURrod/p7N9oQcWRrNohjgmSBZRYA0kW6ZyqYJkLvRv54nXv6j/8Xq2nG/KVfDqL0kp8if+JGeFlQElpWJiAbGifYkopFy69QiLYU2ndR7aPbx+5qm/dcwPJ7K+n6dyePynCZadtcabm3PuBFUxGLdT9ImDXMOPfXxPMlN/3eb78byuEuHnhCIvIGLMBGx+8QTXvu7kHpZObvkbsF1xjVs9fDpwVLjh7GWdwf3BZ/agFlI24ffyqCPFnuaxUVyfUZeqf4twRsIZkTTB47lHDhYiVkyGe8gd root@pigstarter.de ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCl3RTOHd5DLiVeUbUr/GSiKoRWknXQnbkIf+uNiFO+XxiqZVojPlumQUVhasY8UzDzj9tSDruUKXpjut50FhIO5UFAgsBeMJyoZbgY/+R+QKU00Q19+IiUtxeFol/9dCO+F4o937MC0OpAC10LbOXN/9SYIXueYk3pJxIycXwUqhYmyEqtDdVh9Rx32LBVqlBoXRHpNGPLiswV2qNe0b5p919IGcslzf1XoUzfE3a3yjk/XbWh/59xnl4V7Oe7+iQheFxOT6rFA30WYwEygs5As//ZYtxvnn0gA02gOnXJsNjOW9irlxOUeP7IOU6Ye3WRKFRR0+7PS+w8IJLag2xb makefu@pornocauster ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7df1RfMGNHPJe0iF6rD9DBs/4VujN6nNr7RbRCFk7HF/JzLXSn9Vcwk+3JefP4/d/bUo0h03rhQaRohDhBScrJidj2YacF6gmZOuTf3AMWprdz9D/1dDkN/ytwzGhADhqbHEWeomIllsa8Up4PvEeDcIHJGzYvuc0BbGqRk0XgxwqIrLAhdpTfEKaTbt7IzmUqEofxThTZ/4k020PKn2WDBWKQYGZJ9Ba2WzlKUXWx842ncW29oxC2faRz4M3eMPy0JMpBLkK9U3dccE75dgT/89/4ofVjM7+J3FOP3dgXzrtk+A5aN5a/veJUViQ9xdGxXvoa++iCr5q/BVRv0Bb sammy@muhbaasu.de +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3+2vSwiJoIpHpnkw4SslPrlR6/z43nZ7s1tGXkkNnVDB2uzxMaISNRjSk0GgXpDx4hLEi6074hSvv5JWbUuMyKr9n6GVVeYNCjsiPcRkL3d7zDwFwqyndhVeWgmpuylYx4XKIbTvpBVyG3CRT1+D4apVUgiDa9lVfjBk7/ESxBzt0dXtlJEzQBBoCo0C8jeeIpvZKbq1zeM9wvLsgFaT7fsSxrg5BEb/tQl6pbkykWFXbzzd91liEQaSqai7Ux2355ZXGANQBCTglKhdTcir0RuHNtQGrZHBxL9qVfJjJJNZg1b6UAhDanqE/HyOI3sp6LGBvpW5afLKOdj9ppQQN retiolum@nomic -- cgit v1.2.3 From a351123fe617f3d273cd2c1c148c861816046576 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 8 Feb 2013 20:29:14 +0100 Subject: //services test-server: exit 0 --- services/test-server.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'services') diff --git a/services/test-server.py b/services/test-server.py index 7838e0af..176373cf 100755 --- a/services/test-server.py +++ b/services/test-server.py @@ -20,7 +20,9 @@ from twisted.cred.error import UnauthorizedLogin from twisted.cred.portal import IRealm, Portal from twisted.internet.protocol import Protocol from twisted.internet.reactor import listenTCP, run +from twisted.internet.error import ProcessTerminated from twisted.python.components import registerAdapter +from twisted.python.failure import Failure from zope.interface import implements if debug_log == 'true': @@ -79,6 +81,7 @@ class MyProtocol(Protocol): def connectionMade(self): data = slurpTextfile(services_file).replace('\n', '\r\n') self.transport.write(data) + self.transport.processEnded(Failure(ProcessTerminated(0, None, None))) self.transport.loseConnection() #def dataReceived(self, data): -- cgit v1.2.3 From c5953301c721096e97ce7e83037f0da85ee4eaa7 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 8 Feb 2013 21:09:25 +0100 Subject: //services/bin/services: propagate ssh's exit code --- services/bin/services | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'services') diff --git a/services/bin/services b/services/bin/services index e854cbcb..31aca200 100755 --- a/services/bin/services +++ b/services/bin/services @@ -25,9 +25,16 @@ fi exec 3>&1 { + set +e ssh $options $user@$hostname -p $port -} 2>&1 1>&3 | sed ' - /^Connection to '$hostname' closed/d - /^Shared connection to '$hostname' closed/d -' -exec 3>&- + echo "# Exit:$?" >&2 +} 2>&1 1>&3 | { + err="`cat`" + code=`echo "$err" | sed -n 's/^# Exit:\([0-9]\+\)/\1/p'` + echo "$err" | sed ' + /^Connection to '$hostname' closed/d + /^Shared connection to '$hostname' closed/d + /^# Exit:/d + ' >&2 + exit $code +} -- cgit v1.2.3 From 62b197ea0604cf9d785bf67eefcf7be00daa92b9 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 14 Feb 2013 13:06:07 +0100 Subject: create routine to update ssh_authorized_keys via ssh --- services/Makefile | 5 ++++- services/bin/update-services-pubkeys | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100755 services/bin/update-services-pubkeys (limited to 'services') diff --git a/services/Makefile b/services/Makefile index 37931f47..a4db7df1 100644 --- a/services/Makefile +++ b/services/Makefile @@ -7,7 +7,8 @@ export services_home := /opt/services .PHONY: authorized_keys -service-user: $(services_home)/services.txt $(services_home)/.ssh/authorized_keys + +service-user: $(services_home)/services.txt ssh_authorized_keys @echo 'also make sure that the user is created: make create-service-user' create-service-user: @@ -15,6 +16,8 @@ create-service-user: rmdir $(services_home) useradd -m -r -l -f -1 -d $(services_home) services +ssh_authorized_keys: $(services_home)/.ssh/authorized_keys + $(services_home)/.ssh: mkdir $@ chown services:services $@ diff --git a/services/bin/update-services-pubkeys b/services/bin/update-services-pubkeys new file mode 100755 index 00000000..6a658607 --- /dev/null +++ b/services/bin/update-services-pubkeys @@ -0,0 +1,5 @@ +#!/bin/sh +KREBS_ROOT="${KREBS_ROOT:-/krebs}" +ssh $1 < Date: Thu, 14 Feb 2013 13:11:36 +0100 Subject: fix update-services-pubkeys --- services/bin/update-services-pubkeys | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'services') diff --git a/services/bin/update-services-pubkeys b/services/bin/update-services-pubkeys index 6a658607..9936c402 100755 --- a/services/bin/update-services-pubkeys +++ b/services/bin/update-services-pubkeys @@ -1,5 +1,3 @@ #!/bin/sh KREBS_ROOT="${KREBS_ROOT:-/krebs}" -ssh $1 < Date: Thu, 14 Feb 2013 20:57:59 +0100 Subject: added lassulus --- services/authorized_keys | 1 + 1 file changed, 1 insertion(+) (limited to 'services') diff --git a/services/authorized_keys b/services/authorized_keys index befd6b18..d5d76d1f 100644 --- a/services/authorized_keys +++ b/services/authorized_keys @@ -3,3 +3,4 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv9TTt4FkzT3jlQ0VS2tX/GpQO9Ef0wIQ+g96foe4q ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCl3RTOHd5DLiVeUbUr/GSiKoRWknXQnbkIf+uNiFO+XxiqZVojPlumQUVhasY8UzDzj9tSDruUKXpjut50FhIO5UFAgsBeMJyoZbgY/+R+QKU00Q19+IiUtxeFol/9dCO+F4o937MC0OpAC10LbOXN/9SYIXueYk3pJxIycXwUqhYmyEqtDdVh9Rx32LBVqlBoXRHpNGPLiswV2qNe0b5p919IGcslzf1XoUzfE3a3yjk/XbWh/59xnl4V7Oe7+iQheFxOT6rFA30WYwEygs5As//ZYtxvnn0gA02gOnXJsNjOW9irlxOUeP7IOU6Ye3WRKFRR0+7PS+w8IJLag2xb makefu@pornocauster ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7df1RfMGNHPJe0iF6rD9DBs/4VujN6nNr7RbRCFk7HF/JzLXSn9Vcwk+3JefP4/d/bUo0h03rhQaRohDhBScrJidj2YacF6gmZOuTf3AMWprdz9D/1dDkN/ytwzGhADhqbHEWeomIllsa8Up4PvEeDcIHJGzYvuc0BbGqRk0XgxwqIrLAhdpTfEKaTbt7IzmUqEofxThTZ/4k020PKn2WDBWKQYGZJ9Ba2WzlKUXWx842ncW29oxC2faRz4M3eMPy0JMpBLkK9U3dccE75dgT/89/4ofVjM7+J3FOP3dgXzrtk+A5aN5a/veJUViQ9xdGxXvoa++iCr5q/BVRv0Bb sammy@muhbaasu.de ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3+2vSwiJoIpHpnkw4SslPrlR6/z43nZ7s1tGXkkNnVDB2uzxMaISNRjSk0GgXpDx4hLEi6074hSvv5JWbUuMyKr9n6GVVeYNCjsiPcRkL3d7zDwFwqyndhVeWgmpuylYx4XKIbTvpBVyG3CRT1+D4apVUgiDa9lVfjBk7/ESxBzt0dXtlJEzQBBoCo0C8jeeIpvZKbq1zeM9wvLsgFaT7fsSxrg5BEb/tQl6pbkykWFXbzzd91liEQaSqai7Ux2355ZXGANQBCTglKhdTcir0RuHNtQGrZHBxL9qVfJjJJNZg1b6UAhDanqE/HyOI3sp6LGBvpW5afLKOdj9ppQQN retiolum@nomic +ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp83zynhIueJJsWlSEykVSBrrgBFKq38+vT8bRfa+csqyjZBl2SQFuCPo+Qbh49mwchpZRshBa9jQEIGqmXxv/PYdfBFQuOFgyUq9ZcTZUXqeynicg/SyOYFW86iiqYralIAkuGPfQ4howLPVyjTZtWeEeeEttom6p6LMY5Aumjz2em0FG0n9rRFY2fBzrdYAgk9C0N6ojCs/Gzknk9SGntA96MDqHJ1HXWFMfmwOLCnxtE5TY30MqSmkrJb7Fsejwjoqoe9Y/mCaR0LpG2cStC1+37GbHJNH0caCMaQCX8qdfgMVbWTVeFWtV6aWOaRgwLrPDYn4cHWQJqTfhtPrNQ== death@uriel -- cgit v1.2.3 From 980ed2a4f57856160d787f3f13007f28d3798665 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 14 Feb 2013 21:05:37 +0100 Subject: added slowpoke to bootstrap --- services/etc/services/bootstrap | 1 + 1 file changed, 1 insertion(+) (limited to 'services') diff --git a/services/etc/services/bootstrap b/services/etc/services/bootstrap index 8c848146..6d9e7363 100644 --- a/services/etc/services/bootstrap +++ b/services/etc/services/bootstrap @@ -7,3 +7,4 @@ services://rage:22 services://devstar:22 services://heidi:22 services://geisha:22 +services://slowpoke:22 -- cgit v1.2.3 From 10460671ec369906175f221fbefd78bc59f6cb63 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 22 Feb 2013 09:47:18 +0100 Subject: services authorized_keys: add retiolum@ire --- services/authorized_keys | 1 + 1 file changed, 1 insertion(+) (limited to 'services') diff --git a/services/authorized_keys b/services/authorized_keys index d5d76d1f..03774041 100644 --- a/services/authorized_keys +++ b/services/authorized_keys @@ -2,5 +2,6 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7YrLdnXDRU2XEdZDu1BmgiT0Vaxplf3bfvSm+5o3g ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv9TTt4FkzT3jlQ0VS2tX/GpQO9Ef0wIQ+g96foe4qSniBwR667T1gIhURrod/p7N9oQcWRrNohjgmSBZRYA0kW6ZyqYJkLvRv54nXv6j/8Xq2nG/KVfDqL0kp8if+JGeFlQElpWJiAbGifYkopFy69QiLYU2ndR7aPbx+5qm/dcwPJ7K+n6dyePynCZadtcabm3PuBFUxGLdT9ImDXMOPfXxPMlN/3eb78byuEuHnhCIvIGLMBGx+8QTXvu7kHpZObvkbsF1xjVs9fDpwVLjh7GWdwf3BZ/agFlI24ffyqCPFnuaxUVyfUZeqf4twRsIZkTTB47lHDhYiVkyGe8gd root@pigstarter.de ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCl3RTOHd5DLiVeUbUr/GSiKoRWknXQnbkIf+uNiFO+XxiqZVojPlumQUVhasY8UzDzj9tSDruUKXpjut50FhIO5UFAgsBeMJyoZbgY/+R+QKU00Q19+IiUtxeFol/9dCO+F4o937MC0OpAC10LbOXN/9SYIXueYk3pJxIycXwUqhYmyEqtDdVh9Rx32LBVqlBoXRHpNGPLiswV2qNe0b5p919IGcslzf1XoUzfE3a3yjk/XbWh/59xnl4V7Oe7+iQheFxOT6rFA30WYwEygs5As//ZYtxvnn0gA02gOnXJsNjOW9irlxOUeP7IOU6Ye3WRKFRR0+7PS+w8IJLag2xb makefu@pornocauster ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7df1RfMGNHPJe0iF6rD9DBs/4VujN6nNr7RbRCFk7HF/JzLXSn9Vcwk+3JefP4/d/bUo0h03rhQaRohDhBScrJidj2YacF6gmZOuTf3AMWprdz9D/1dDkN/ytwzGhADhqbHEWeomIllsa8Up4PvEeDcIHJGzYvuc0BbGqRk0XgxwqIrLAhdpTfEKaTbt7IzmUqEofxThTZ/4k020PKn2WDBWKQYGZJ9Ba2WzlKUXWx842ncW29oxC2faRz4M3eMPy0JMpBLkK9U3dccE75dgT/89/4ofVjM7+J3FOP3dgXzrtk+A5aN5a/veJUViQ9xdGxXvoa++iCr5q/BVRv0Bb sammy@muhbaasu.de +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOIRWLC4ESCDxjyoJUqaUNC8ZDiE4UICZk3cbDptdtendTQvjSXz0RW6MWhJ+F6wWZntL1EibKn8djax1tzgcvNASCUEtGey/850IzBIrETs+WQDRjV2QqBKWxVaQPIFjw2V3vFSKKNxq01qznVBY510DIf4+0WR8b1ZPD/XbuyQLGYM3N7dP4JQSnnNAgtyutBKdomWfT18hW1lLjkP8h1IOiC03HxXTYX+nMUiLDff3D5GT5u3Ke2+VigXjz4Ue8rVsOg/zgqrwEAfx8o1q83uSB23oqUqWkqlxOC/4QY5kpdNqW/Iz89zHibp5ZceHd2ZSoGefv7UZM0lRIDHjJ retiolum@ire ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3+2vSwiJoIpHpnkw4SslPrlR6/z43nZ7s1tGXkkNnVDB2uzxMaISNRjSk0GgXpDx4hLEi6074hSvv5JWbUuMyKr9n6GVVeYNCjsiPcRkL3d7zDwFwqyndhVeWgmpuylYx4XKIbTvpBVyG3CRT1+D4apVUgiDa9lVfjBk7/ESxBzt0dXtlJEzQBBoCo0C8jeeIpvZKbq1zeM9wvLsgFaT7fsSxrg5BEb/tQl6pbkykWFXbzzd91liEQaSqai7Ux2355ZXGANQBCTglKhdTcir0RuHNtQGrZHBxL9qVfJjJJNZg1b6UAhDanqE/HyOI3sp6LGBvpW5afLKOdj9ppQQN retiolum@nomic ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp83zynhIueJJsWlSEykVSBrrgBFKq38+vT8bRfa+csqyjZBl2SQFuCPo+Qbh49mwchpZRshBa9jQEIGqmXxv/PYdfBFQuOFgyUq9ZcTZUXqeynicg/SyOYFW86iiqYralIAkuGPfQ4howLPVyjTZtWeEeeEttom6p6LMY5Aumjz2em0FG0n9rRFY2fBzrdYAgk9C0N6ojCs/Gzknk9SGntA96MDqHJ1HXWFMfmwOLCnxtE5TY30MqSmkrJb7Fsejwjoqoe9Y/mCaR0LpG2cStC1+37GbHJNH0caCMaQCX8qdfgMVbWTVeFWtV6aWOaRgwLrPDYn4cHWQJqTfhtPrNQ== death@uriel -- cgit v1.2.3