From c46bba68894e18000bc6e730cc47abc5834aebc8 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Mon, 27 Aug 2018 12:54:47 +0300 Subject: [PATCH] ssh: configure private key file Fixes #1059 Signed-off-by: Ruslan Kuprieiev --- dvc/config.py | 2 ++ dvc/remote/ssh.py | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/dvc/config.py b/dvc/config.py index bf8fd6b31..5f2e2d8cb 100644 --- a/dvc/config.py +++ b/dvc/config.py @@ -133,6 +133,7 @@ class Config(object): SECTION_REMOTE_URL = 'url' SECTION_REMOTE_USER = 'user' SECTION_REMOTE_PORT = 'port' + SECTION_REMOTE_KEY_FILE = 'keyfile' SECTION_REMOTE_SCHEMA = { SECTION_REMOTE_URL: And(supported_url, error="Unsupported URL"), Optional(SECTION_AWS_REGION): str, @@ -143,6 +144,7 @@ class Config(object): Optional(SECTION_CACHE_TYPE): SECTION_CACHE_TYPE_SCHEMA, Optional(SECTION_REMOTE_USER): str, Optional(SECTION_REMOTE_PORT): int, + Optional(SECTION_REMOTE_KEY_FILE): str, } SCHEMA = { diff --git a/dvc/remote/ssh.py b/dvc/remote/ssh.py index 7ef79c363..b6b8afdbb 100644 --- a/dvc/remote/ssh.py +++ b/dvc/remote/ssh.py @@ -58,6 +58,7 @@ class RemoteSSH(RemoteBase): getpass.getuser()) self.prefix = self.group('path') self.port = config.get(Config.SECTION_REMOTE_PORT, self.DEFAULT_PORT) + self.keyfile = config.get(Config.SECTION_REMOTE_KEY_FILE, None) def md5s_to_path_infos(self, md5s): return [{'scheme': 'ssh', @@ -77,7 +78,10 @@ class RemoteSSH(RemoteBase): ssh.load_system_host_keys() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - ssh.connect(host, username=user, port=port) + ssh.connect(host, + username=user, + port=port, + key_filename=self.keyfile) return ssh