回答:
リモートマシンでGnome-keyringまたはKwalletを実行できます。それぞれにデーモンとGUIの2つのコンポーネントがあります。
X転送を使用してsshを実行すると、リモートマシンでGUIアプリケーションを実行できます。「サーバー」マシンだからといって、GUIアプリケーションをインストールできないという意味ではありません。対応するデスクトップ環境を実行しているかどうかは関係ありません。アプリケーションを実行するために特定のデスクトップ環境は必要ありません。
コマンドラインでを介してKwalletを制御できますが、コマンドラインでqdbus
パスワードをクリアテキストで書き込む必要があるため、この特定のケースではお勧めできません。このSUの回答も参照してください。
Gnome-keyringとKwallet(パッケージpython-keyring-gnome
とpython-keyring-kwallet
)の両方にPythonバインディングがあります。それらを制御する小さなpythonスクリプトを書くことができます。実際、Gnome-keyringにはすでに1つ、gkeyringがあります。
キーリングパスワードがログインパスワードと同じである場合、をインストールするlibpam-keyring
と、ログイン時にキーリングのロックが自動的に解除されます。ただし、キーペアではなくパスワードでログインする必要があります。
ローカルでGnome-keyringまたはKwalletを実行している場合は、少し作業するだけで、sshを介してそれらを転送できます。それらはsshが転送できないUnixソケットを使用します。ただしsocat
、ローカルでTCPソケットにUnixソケットをリレーし、リモートマシンでその逆を使用できます。
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 &
これは、両側の小さなシェルスクリプトとのRemoteForward
行で自動化できます~/.ssh/config
。理論的には、リモートマシンからgnomeキーリングにアクセスできるはずです。しかし、タツノオトシゴでアクセスしようとしましたが、に接続することすらしませんでした$GNOME_KEYRING_SOCKET
。理由はわかりませんし、svnがキーリングにアクセスできるかどうかもわかりません。
暗号化されたファイルシステムに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
この方法には、いくつかの理由で私の好みがあります。
~/.subversion/auth
ぶら下がりシンボリックリンクになります。その場合、Subversionはパスワードを保存することを通知します(その通知をオフにしていない場合)が、実際にはどこにも保存しません(svn 1.6.6でテスト済み)。したがって、3番目のアプローチにはリスクはありません。
gpgはパスワードを入力してファイルを暗号化しますが、そのためのパスフレーズが必要になります(秘密鍵を紛失しないでください!)。
私はあなたが秘密鍵をsvnにチェックインすることができると思います、そしてそれを使うにはまだパスフレーズが必要ですが、この全体の設定は少し奇妙に見えます。
なぜこれを行う必要があるのですか?