[X2Go-Commits] [x2gobroker] 02/02: Support adding remote broker agent's host keys via the x2gobroker-testagent tool.
git-admin at x2go.org
git-admin at x2go.org
Wed Mar 19 13:27:37 CET 2014
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository x2gobroker.
commit 8a1c4c54cc83ee136b59f91f04607adf047d74e0
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Wed Mar 19 13:25:33 2014 +0100
Support adding remote broker agent's host keys via the x2gobroker-testagent tool.
---
debian/changelog | 2 ++
sbin/x2gobroker-testagent | 8 ++++++++
x2gobroker/agent.py | 4 +++-
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/debian/changelog b/debian/changelog
index e1e4fa1..c3e10ac 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -105,6 +105,8 @@ x2gobroker (0.0.3.0-0x2go1) UNRELEASED; urgency=low
- For user context changes: set the HOME dir of the new user correctly.
- Reduce Paramiko/SSH verbosity (logging.ERROR) when connecting to remote
broker agents.
+ - Support adding remote broker agent's host keys via the x2gobroker-testagent
+ tool.
* debian/control:
+ Replace LDAP support with session brokerage support in LONG_DESCRIPTION.
+ Fix SYNOPSIS texts.
diff --git a/sbin/x2gobroker-testagent b/sbin/x2gobroker-testagent
index 3d6b825..f73bb0b 100755
--- a/sbin/x2gobroker-testagent
+++ b/sbin/x2gobroker-testagent
@@ -26,6 +26,7 @@ import types
import setproctitle
import argparse
import logging
+from paramiko import AutoAddPolicy
# perform an authentication against the authentication mechanism configured for WSGI
try:
@@ -58,6 +59,7 @@ if __name__ == "__main__":
{'args':['-p','--port'], 'default': 22, 'metavar': 'PORT', 'help': 'For remote agent calls (via SSH) use this port as SSH port (default: 22)', },
]
supplementary_options = [
+ {'args':['-A', '--add-to-known-hosts'], 'default': False, 'action': 'store_true', 'help': 'For SSH connections to a remote broker agent: permanently add the remote system\'s host key to the list of known hosts', },
{'args':['--session-id'], 'default': None, 'help': 'when testing the \'suspendsession\' or the \'terminatesession\' task, you have to additionally give a session ID to test the tasks on', },
{'args':['--pubkey'], 'default': None, 'help': 'use this public key when testing the \'addauthkey\' and the \'delauthkey\' task', },
]
@@ -124,6 +126,12 @@ query_mode = local_agent and 'LOCAL' or 'SSH'
if local_agent: remote_agent = None
else: remote_agent = {'hostname': hostname, 'port': port, }
+if remote_agent and cmdline_args.add_to_known_hosts:
+ remote_agent.update({
+ 'host_key_policy': AutoAddPolicy(),
+ })
+
+
def call_agent(task, **kwargs):
try:
_result = agent_client_tasks[task](username=username, query_mode=query_mode, remote_agent=remote_agent, **kwargs)
diff --git a/x2gobroker/agent.py b/x2gobroker/agent.py
index 2bb92da..169f62e 100644
--- a/x2gobroker/agent.py
+++ b/x2gobroker/agent.py
@@ -132,6 +132,8 @@ def call_remote_broker_agent(username, mode, cmdline_args=[], remote_agent=None)
"""
if remote_agent is None:
logger_error.error('With the SSH agent-query-mode a remote agent host (hostname, port) has to be specified!')
+ elif not remote_agent.has_key('host_key_policy'):
+ remote_agent['host_key_policy'] = paramiko.WarningPolicy()
cmd_line = [
'{x2gobroker_agent_binary}'.format(x2gobroker_agent_binary=x2gobroker.defaults.X2GOBROKER_AGENT_CMD),
@@ -153,7 +155,7 @@ def call_remote_broker_agent(username, mode, cmdline_args=[], remote_agent=None)
try:
client = paramiko.SSHClient()
client.load_system_host_keys()
- client.set_missing_host_key_policy(paramiko.WarningPolicy())
+ client.set_missing_host_key_policy(remote_agent['host_key_policy'])
client.connect(remote_hostname, remote_port, remote_username, look_for_keys=True, allow_agent=True)
result = []
--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git
More information about the x2go-commits
mailing list