diff options
author | Christian Poessinger <christian@poessinger.com> | 2023-01-04 19:58:59 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2023-01-08 08:55:38 +0100 |
commit | c0745d64024a498377dd02f2fc1ef0366473e97c (patch) | |
tree | f8279a2e895384d3a7eded123d94c7988c6981b3 | |
parent | 87b45f69913b7687433fb214fc97064fccd7214b (diff) | |
download | vyos-1x-c0745d64024a498377dd02f2fc1ef0366473e97c.tar.gz vyos-1x-c0745d64024a498377dd02f2fc1ef0366473e97c.zip |
ssh: T4922: add source-interface support ssh-client
(cherry picked from commit 87cc636bd2baf576a2a5ece7a4f8318eb4f69c2e)
-rw-r--r-- | data/templates/system/ssh_config.tmpl | 7 | ||||
-rw-r--r-- | interface-definitions/system-option.xml.in | 1 | ||||
-rwxr-xr-x | src/conf_mode/system-option.py | 5 |
3 files changed, 11 insertions, 2 deletions
diff --git a/data/templates/system/ssh_config.tmpl b/data/templates/system/ssh_config.tmpl index abc03f069..94dac9ed3 100644 --- a/data/templates/system/ssh_config.tmpl +++ b/data/templates/system/ssh_config.tmpl @@ -1,3 +1,8 @@ -{% if ssh_client is defined and ssh_client.source_address is defined and ssh_client.source_address is not none %} +{% if ssh_client is defined %} +{% if ssh_client.source_address is defined and ssh_client.source_address is not none %} BindAddress {{ ssh_client.source_address }} +{% endif %} +{% if ssh_client.source_interface is defined and ssh_client.source_address is not none %} +BindInterface {{ ssh_client.source_interface }} +{% endif %} {% endif %} diff --git a/interface-definitions/system-option.xml.in b/interface-definitions/system-option.xml.in index 5f80e064d..b47dde0a0 100644 --- a/interface-definitions/system-option.xml.in +++ b/interface-definitions/system-option.xml.in @@ -105,6 +105,7 @@ </properties> <children> #include <include/source-address-ipv4-ipv6.xml.i> + #include <include/source-interface.xml.i> </children> </node> <leafNode name="startup-beep"> diff --git a/src/conf_mode/system-option.py b/src/conf_mode/system-option.py index 2949bcfa9..fcdaa9676 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.validate import is_addr_assigned @@ -69,6 +70,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 |