示例#1
0
    def test_create_public_key(self, pwnam, isfile, chown):
        fake_user = MagicMock()
        fake_user.pw_uid = 3133
        pwnam.return_value = fake_user
        create_cmd = ['ssh-keygen', '-y', '-f', '/home/foo/.ssh/id_rsa']

        def _ensure_perms():
            chown.assert_called_with('/home/foo/.ssh/id_rsa.pub', 3133, -1)

        isfile.return_value = True
        unison.create_public_key(user='******',
                                 priv_key_path='/home/foo/.ssh/id_rsa',
                                 pub_key_path='/home/foo/.ssh/id_rsa.pub')
        self.assertNotIn(call(create_cmd), self.check_output.call_args_list)
        _ensure_perms()

        isfile.return_value = False
        with patch_open() as (_open, _file):
            self.check_output.return_value = b'fookey'
            unison.create_public_key(user='******',
                                     priv_key_path='/home/foo/.ssh/id_rsa',
                                     pub_key_path='/home/foo/.ssh/id_rsa.pub')
            self.assertIn(call(create_cmd), self.check_output.call_args_list)
            _ensure_perms()
            _open.assert_called_with('/home/foo/.ssh/id_rsa.pub', 'wb')
            _file.write.assert_called_with(b'fookey')
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)
示例#3
0
    def test_create_public_key(self, isfile):
        create_cmd = ['ssh-keygen', '-y', '-f', '/home/foo/.ssh/id_rsa']
        isfile.return_value = True
        unison.create_public_key(user='******',
                                 priv_key_path='/home/foo/.ssh/id_rsa',
                                 pub_key_path='/home/foo/.ssh/id_rsa.pub')
        self.assertNotIn(call(create_cmd), self.check_output.call_args_list)

        isfile.return_value = False
        with patch_open() as (_open, _file):
            self.check_output.return_value = b'fookey'
            unison.create_public_key(user='******',
                                     priv_key_path='/home/foo/.ssh/id_rsa',
                                     pub_key_path='/home/foo/.ssh/id_rsa.pub')
            self.assertIn(call(create_cmd), self.check_output.call_args_list)
            _open.assert_called_with('/home/foo/.ssh/id_rsa.pub', 'wb')
            _file.write.assert_called_with(b'fookey')