X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/2892a4c95c388b0bbe0d1816396b8a5f218d8464..1a8337f2993bb426c7965e06d63178e4e7e4078a:/lib/ssh.py diff --git a/lib/ssh.py b/lib/ssh.py index 3477b44..0a65f9f 100644 --- a/lib/ssh.py +++ b/lib/ssh.py @@ -53,15 +53,10 @@ def GetUserFiles(user, mkdir=False): raise errors.OpExecError("Cannot resolve home of user %s" % user) ssh_dir = utils.PathJoin(user_dir, ".ssh") - if not os.path.lexists(ssh_dir): - if mkdir: - try: - os.mkdir(ssh_dir, 0700) - except EnvironmentError, err: - raise errors.OpExecError("Can't create .ssh dir for user %s: %s" % - (user, str(err))) + if mkdir: + utils.EnsureDirs([(ssh_dir, constants.SECURE_DIR_MODE)]) elif not os.path.isdir(ssh_dir): - raise errors.OpExecError("path ~%s/.ssh is not a directory" % user) + raise errors.OpExecError("Path %s is not a directory" % ssh_dir) return [utils.PathJoin(ssh_dir, base) for base in ["id_dsa", "id_dsa.pub", "authorized_keys"]] @@ -161,7 +156,7 @@ class SshRunner: strict_host_check, private_key, quiet=quiet)) if tty: - argv.append("-t") + argv.extend(["-t", "-t"]) argv.extend(["%s@%s" % (user, hostname), command]) return argv