def test_create_private_key_rsa(self, isfile): create_cmd = [ 'ssh-keygen', '-q', '-N', '', '-t', 'rsa', '-b', '2048', '-f', '/home/foo/.ssh/id_rsa' ] def _ensure_perms(): cmds = [ ['chown', 'foo', '/home/foo/.ssh/id_rsa'], ['chmod', '0600', '/home/foo/.ssh/id_rsa'], ] self._ensure_calls_in(cmds) isfile.return_value = False unison.create_private_key(user='******', priv_key_path='/home/foo/.ssh/id_rsa') self.assertIn(call(create_cmd), self.check_call.call_args_list) _ensure_perms() self.check_call.call_args_list = [] isfile.return_value = True unison.create_private_key(user='******', priv_key_path='/home/foo/.ssh/id_rsa') self.assertNotIn(call(create_cmd), self.check_call.call_args_list) _ensure_perms()
def test_create_private_key_rsa(self, pwnam, isfile, chown, chmod): fake_user = MagicMock() fake_user.pw_uid = 3133 pwnam.return_value = fake_user create_cmd = [ 'ssh-keygen', '-q', '-N', '', '-t', 'rsa', '-b', '2048', '-f', '/home/foo/.ssh/id_rsa' ] def _ensure_perms(): chown.assert_called_with('/home/foo/.ssh/id_rsa', 3133, -1) chmod.assert_called_with('/home/foo/.ssh/id_rsa', 0o600) isfile.return_value = False unison.create_private_key(user='******', priv_key_path='/home/foo/.ssh/id_rsa') self.assertIn(call(create_cmd), self.check_call.call_args_list) _ensure_perms() self.check_call.call_args_list = [] chown.reset_mock() chmod.reset_mock() isfile.return_value = True unison.create_private_key(user='******', priv_key_path='/home/foo/.ssh/id_rsa') self.assertNotIn(call(create_cmd), self.check_call.call_args_list) _ensure_perms()
def generate_ssh_key(): status_set("maintenance", "generating ssh key") user = "******" folder = "/home/%s/.ssh" % user mkdir(folder, owner=user, group=user, perms=0o775) private_path = "%s/id_rsa" % folder public_path = "%s.pub" % private_path create_private_key(user, private_path) create_public_key(user, private_path, public_path)