From 87cc636bd2baf576a2a5ece7a4f8318eb4f69c2e Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Wed, 4 Jan 2023 19:58:59 +0100 Subject: ssh: T2651: add source-interface support ssh-client --- data/templates/system/ssh_config.j2 | 3 +++ interface-definitions/system-option.xml.in | 1 + src/conf_mode/system-option.py | 5 ++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/data/templates/system/ssh_config.j2 b/data/templates/system/ssh_config.j2 index 1449f95b1..d3ede0971 100644 --- a/data/templates/system/ssh_config.j2 +++ b/data/templates/system/ssh_config.j2 @@ -1,3 +1,6 @@ {% if ssh_client.source_address is vyos_defined %} BindAddress {{ ssh_client.source_address }} {% endif %} +{% if ssh_client.source_interface is vyos_defined %} +BindInterface {{ ssh_client.source_interface }} +{% endif %} diff --git a/interface-definitions/system-option.xml.in b/interface-definitions/system-option.xml.in index a9fed81fe..bb15e467e 100644 --- a/interface-definitions/system-option.xml.in +++ b/interface-definitions/system-option.xml.in @@ -121,6 +121,7 @@ #include + #include diff --git a/src/conf_mode/system-option.py b/src/conf_mode/system-option.py index 85fc6a83f..ceac3dc16 100755 --- a/src/conf_mode/system-option.py +++ b/src/conf_mode/system-option.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2019-2020 VyOS maintainers and contributors +# Copyright (C) 2019-2022 VyOS maintainers and contributors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or later as @@ -22,6 +22,7 @@ from time import sleep from vyos.config import Config from vyos.configdict import dict_merge +from vyos.configverify import verify_source_interface from vyos.template import render from vyos.util import cmd from vyos.util import is_systemd_service_running @@ -70,6 +71,8 @@ def verify(options): if 'source_address' in config: if not is_addr_assigned(config['source_address']): raise ConfigError('No interface with give address specified!') + if 'source_interface' in config: + verify_source_interface(config) return None -- cgit v1.2.3