Что лучший способ состоит в том, чтобы сохранить зашифрованный svn пароль на Сервере Ubuntu?

Привет,

У меня есть Сервер Ubuntu, выполняющий сервер подверсии. Я выполняю клиент на той же машине через SSH, и я хотел бы, чтобы svn клиент помнил мой пароль, но не сохранил его как простой текст. При взгляде здесь я вижу два метода: брелок для ключей гнома и kwallet. Поскольку я не использую среду рабочего стола, я немного осторожен о попытке использовать один из них. Какие-либо предложения? Это было бы в порядке (или даже работало бы) использовать одно из этих двух приложений, которые я упомянул?

TIA

8
задан 09.09.2010, 17:51

2 ответа

  1. Можно выполнить Gnome-keyring или Kwallet на удаленной машине. Каждый приезжает в два компонента, демона и GUI.

    • Можно запустить приложение GUI на удаленной машине при выполнении ssh с X передачами. Просто, потому что это - машина “сервера”, не означает, что Вы не можете установить приложения GUI на нем. Не имеет значения, выполняете ли Вы соответствующую настольную среду или нет, для приложений не нужна определенная настольная среда для выполнения.

    • Можно управлять Kwallet на командной строке через qdbus, хотя это не хорошая идея в этом конкретном случае, потому что необходимо было бы записать пароль в открытом тексте на командной строке, и это может быть отслежено другими пользователями. См. также этот ответ SU.

    • Существует привязка Python и для Gnome-keyring и для Kwallet (пакеты python-keyring-gnome и python-keyring-kwallet); Вы могли записать крошечный сценарий Python для управления ими. На самом деле уже существует один для брелока для ключей Gnome: gkeyring.

    • Если Ваш пароль брелока для ключей совпадает с Вашим паролем входа в систему, можно установить libpam-keyring и Ваш брелок для ключей будет автоматически разблокирован, когда Вы войдете в систему. Однако это требует входа в систему с паролем, а не парой ключей.

  2. При выполнении Gnome-keyring или Kwallet локально можно передать им через ssh с небольшим количеством работы. Они используют сокеты Unix, которые не может передать ssh. Но можно использовать socat передайте сокеты Unix к сокетам TCP локально и наоборот на удаленной машине:

    while true; do socat TCP-LISTEN:22007 UNIX-CONNECT:"$GNOME_KEYRING_SOCKET"; done &
    ssh -R22007:localhost:22007 remote.example.com
    export GNOME_KEYRING_SOCKET="$HOME/.gnome-keyring-socket"
    while true; do socat UNIX-LISTEN:"$GNOME_KEYRING_SOCKET" TCP4:localhost:22007; done &
    

    Это может быть автоматизировано с маленькими сценариями оболочки на каждой стороне и a RemoteForward строка в ~/.ssh/config. В теории необходимо затем смочь получить доступ к брелоку для ключей гнома от удаленной машины. Однако я пытался получить доступ к нему с морским коньком, и это даже не пыталось соединиться с $GNOME_KEYRING_SOCKET; Я не знаю, почему, и я не знаю, смог ли svn получить доступ к брелоку для ключей.

  3. Можно сохранить svn пароль в зашифрованной файловой системе. Существует несколько опций; я думаю, что самый простой способ начаться encfs. Начальная настройка:

    sudo aptitude install encfs
    encfs ~/.passwords.encrypted ~/.passwords
    mv ~/.subversion/auth ~/.passwords/svn-auth
    ln -s ../.passwords/svn-auth ~/.subversion/auth
    

    Нормальный рабочий процесс:

    encfs ~/.passwords.encrypted ~/.passwords
    ... work ...
    fusermount -u ~/.passwords
    

    Этот метод имеет мое предпочтение по нескольким причинам:

    • И начальная настройка и нормальный рабочий процесс очень просты.
    • Не имеет значения, где Вы входите в систему от, в особенности Вы не должны иметь локальный X-сервер и использовать X передач по ssh.
    • Зашифрованная файловая система более универсальна, чем брелок для ключей (хотя это менее удобно для использования брелока для ключей, но в svn случае, который не имеет значения).
    • Единственный неповсеместный инструмент, в котором Вы нуждаетесь, является encfs (который требует FUSE), и он упаковывается для Ubuntu.
9
ответ дан 07.12.2019, 14:08

gpg шифруют файл с паролем в, - но затем Вам будет нужен пароль для того (и не теряйте закрытый ключ!).

Я предполагаю, что Вы могли зарегистрироваться в svn закрытый ключ, а также Вам все еще будет нужен пароль для использования его, но эта целая установка кажется немного нечетной.

почему необходимо сделать это?

0
ответ дан 07.12.2019, 14:08

Теги

Похожие вопросы