mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-28 08:03:36 +00:00
backups: Read file path of known_hosts directly from plinth.config
Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
This commit is contained in:
parent
795ed9d735
commit
2c97e1e02e
@ -7,6 +7,7 @@ server_dir = /plinth
|
||||
actions_dir = /usr/share/plinth/actions
|
||||
doc_dir = /usr/share/doc/freedombox
|
||||
custom_static_dir = /var/www/plinth/custom/static
|
||||
known_hosts = /var/lib/plinth/.ssh/known_hosts
|
||||
|
||||
# file locations
|
||||
store_file = %(data_dir)s/plinth.sqlite3
|
||||
|
||||
@ -7,6 +7,7 @@ server_dir = /plinth
|
||||
actions_dir = %(file_root)s/actions
|
||||
doc_dir = %(file_root)s/doc
|
||||
custom_static_dir = %(file_root)s/data/var/www/plinth/custom/static
|
||||
known_hosts = %(data_dir)s/.ssh/known_hosts
|
||||
|
||||
# file locations
|
||||
store_file = %(data_dir)s/plinth.sqlite3
|
||||
|
||||
@ -38,6 +38,7 @@ secure_proxy_ssl_header = None
|
||||
develop = False
|
||||
server_dir = '/'
|
||||
danube_edition = False
|
||||
known_hosts = None
|
||||
|
||||
config_file = None
|
||||
|
||||
@ -96,6 +97,7 @@ def read(config_path=None, root_directory=None):
|
||||
('Path', 'actions_dir', 'string'),
|
||||
('Path', 'doc_dir', 'string'),
|
||||
('Path', 'server_dir', 'string'),
|
||||
('Path', 'known_hosts', 'string'),
|
||||
('Network', 'host', 'string'),
|
||||
('Network', 'port', 'int'),
|
||||
('Network', 'secure_proxy_ssl_header', 'string'),
|
||||
|
||||
@ -149,7 +149,7 @@ def is_ssh_hostkey_verified(hostname):
|
||||
"""Check whether SSH Hostkey has already been verified.
|
||||
hostname: Domain name or IP address of the host
|
||||
"""
|
||||
known_hosts_path = os.path.join(cfg.data_dir, '.ssh', 'known_hosts')
|
||||
known_hosts_path = cfg.known_hosts
|
||||
if not os.path.exists(known_hosts_path):
|
||||
return False
|
||||
|
||||
|
||||
@ -330,10 +330,9 @@ class SshBorgRepository(BorgRepository):
|
||||
def mount(self):
|
||||
if self.is_mounted:
|
||||
return
|
||||
known_hosts_path = os.path.join(cfg.data_dir, '.ssh', 'known_hosts')
|
||||
arguments = [
|
||||
'mount', '--mountpoint', self.mountpoint, '--path', self._path,
|
||||
'--user-known-hosts-file', known_hosts_path
|
||||
'--user-known-hosts-file', cfg.known_hosts
|
||||
]
|
||||
arguments, kwargs = self._append_sshfs_arguments(
|
||||
arguments, self.credentials)
|
||||
|
||||
@ -327,7 +327,7 @@ class VerifySshHostkeyView(SuccessMessageMixin, FormView):
|
||||
@staticmethod
|
||||
def _add_ssh_hostkey(hostname, key_type):
|
||||
"""Add the given SSH key to known_hosts."""
|
||||
known_hosts_path = os.path.join(cfg.data_dir, '.ssh', 'known_hosts')
|
||||
known_hosts_path = cfg.known_hosts
|
||||
if not os.path.exists(known_hosts_path):
|
||||
os.makedirs(known_hosts_path.rsplit('/', maxsplit=1)[0])
|
||||
open(known_hosts_path, 'w').close()
|
||||
@ -440,9 +440,7 @@ def _validate_remote_repository(path, credentials, uuid=None):
|
||||
def _ssh_connection(hostname, username, password):
|
||||
"""Context manager to create and close an SSH connection."""
|
||||
ssh_client = paramiko.SSHClient()
|
||||
|
||||
known_hosts_path = os.path.join(cfg.data_dir, '.ssh', 'known_hosts')
|
||||
ssh_client.load_host_keys(known_hosts_path)
|
||||
ssh_client.load_host_keys(cfg.known_hosts)
|
||||
|
||||
try:
|
||||
ssh_client.connect(hostname, username=username, password=password)
|
||||
|
||||
@ -7,6 +7,7 @@ server_dir = /plinth
|
||||
actions_dir = %(file_root)s/actions
|
||||
doc_dir = %(file_root)s/doc
|
||||
custom_static_dir = %(file_root)s/data/var/www/plinth/custom/static
|
||||
known_hosts = %(data_dir)s/.ssh/known_hosts
|
||||
|
||||
# file locations
|
||||
store_file = %(data_dir)s/plinth.sqlite3
|
||||
|
||||
@ -120,7 +120,7 @@ def compare_configurations(parser):
|
||||
"""Compare two sets of configuration values."""
|
||||
# Note that the count of items within each section includes the number
|
||||
# of default items (1, for 'root').
|
||||
assert len(parser.items('Path')) == 9
|
||||
assert len(parser.items('Path')) == 10
|
||||
assert parser.get('Path', 'root') == cfg.root
|
||||
assert parser.get('Path', 'file_root') == cfg.file_root
|
||||
assert parser.get('Path', 'config_dir') == cfg.config_dir
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user