evennia.server.portal.ssh¶
This module implements the ssh (Secure SHell) protocol for encrypted connections.
This depends on a generic session module that implements the actual login procedure of the game, tracks sessions etc.
Using standard ssh client,
-
class
evennia.server.portal.ssh.SSHServerFactory[source]¶ Bases:
twisted.internet.protocol.ServerFactoryThis is only to name this better in logs
-
noisy= False¶
-
-
class
evennia.server.portal.ssh.SshProtocol(starttuple)[source]¶ Bases:
twisted.conch.manhole.Manhole,evennia.server.session.SessionEach account connecting over ssh gets this protocol assigned to them. All communication between game and account goes through here.
-
noisy= False¶
-
__init__(starttuple)[source]¶ For setting up the account. If account is not None then we’ll login automatically.
- Parameters
starttuple (tuple) – A (account, factory) tuple.
-
terminalSize(width, height)[source]¶ Initialize the terminal and connect to the new session.
- Parameters
width (int) – Width of terminal.
height (int) – Height of terminal.
-
handle_INT()[source]¶ Handle ^C as an interrupt keystroke by resetting the current input variables to their initial state.
-
connectionLost(reason=None)[source]¶ This is executed when the connection is lost for whatever reason. It can also be called directly, from the disconnect method.
- Parameters
reason (str) – Motivation for loosing connection.
-
getClientAddress()[source]¶ Get client address.
- Returns
address_and_port (tuple) –
- The client’s address and port in
a tuple. For example (‘127.0.0.1’, 41917).
-
lineReceived(string)[source]¶ Communication User -> Evennia. Any line return indicates a command for the purpose of the MUD. So we take the user input and pass it on to the game engine.
- Parameters
string (str) – Input text.
-
sendLine(string)[source]¶ Communication Evennia -> User. Any string sent should already have been properly formatted and processed before reaching this point.
- Parameters
string (str) – Output text.
-
disconnect(reason='Connection closed. Goodbye for now.')[source]¶ Disconnect from server.
- Parameters
reason (str) – Motivation for disconnect.
-
data_out(**kwargs)[source]¶ Data Evennia -> User
- Keyword Arguments
kwargs (any) – Options to the protocol.
-
send_text(*args, **kwargs)[source]¶ Send text data. This is an in-band telnet operation.
- Parameters
text (str) – The first argument is always the text string to send. No other arguments are considered.
- Keyword Arguments
options (dict) –
Send-option flags (booleans)
mxp: enforce mxp link support.
ansi: enforce no ansi colors.
xterm256: enforce xterm256 colors, regardless of ttype setting.
nocolor: strip all colors.
raw: pass string through without any ansi processing (i.e. include evennia ansi markers but do not convert them into ansi tokens)
echo: turn on/off line echo on the client. turn off line echo for client, for example for password. note that it must be actively turned back on again!
-
-
class
evennia.server.portal.ssh.ExtraInfoAuthServer[source]¶ Bases:
twisted.conch.ssh.userauth.SSHUserAuthServer-
noisy= False¶
-
-
class
evennia.server.portal.ssh.AccountDBPasswordChecker(factory)[source]¶ Bases:
objectChecks the django db for the correct credentials for username/password otherwise it returns the account or None which is useful for the Realm.
-
noisy= False¶
-
credentialInterfaces= (<InterfaceClass twisted.cred.credentials.IUsernamePassword>,)¶
-
-
class
evennia.server.portal.ssh.PassAvatarIdTerminalRealm(transportFactory=None)[source]¶ Bases:
twisted.conch.manhole_ssh.TerminalRealmReturns an avatar that passes the avatarId through to the protocol. This is probably not the best way to do it.
-
noisy= False¶
-
-
class
evennia.server.portal.ssh.TerminalSessionTransport_getPeer(proto, chainedProtocol, avatar, width, height)[source]¶ Bases:
objectTaken from twisted’s TerminalSessionTransport which doesn’t provide getPeer to the transport. This one does.
-
noisy= False¶
-