コード例 #1
0
ファイル: test_unison.py プロジェクト: thedac/charm-helpers
    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()
コード例 #2
0
ファイル: test_unison.py プロジェクト: yan0s/charm-helpers
    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()
コード例 #3
0
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)