dlech / KeeAgent

ssh agent plugin for KeePass 2.x
http://lechnology.com/software/keeagent
Other
539 stars 35 forks source link

Use KeeAgent under Wine #110

Closed bokysan closed 2 years ago

bokysan commented 9 years ago

Hi,

I have a specific use case. I am running KeePass under Wine on OS X, as it doesn't work well with Mono.

KeeAgent doesn't work in client mode because it detect windows because of these lines in https://github.com/dlech/KeeAgent/blob/master/KeeAgent/KeeAgentExt.cs

        if (agent == null) {
          if (isWindows) {
            agent = new PageantClient();
          } else {
            agent = new UnixClient();
          }
        }

Question: how difficult would it be to add an "override" option in the UI to force Unix sockets even when running under wine (Or maybe even enable both)?

dlech commented 9 years ago

I had a conversation recently with someone about KeeAgent on Wine via email recently, however, he was not able to get .NET 4.0 to work, so KeeAgent would not run.

I've never really used Wine before, but if I get an environment setup, I could take a look at it.

bokysan commented 9 years ago

Hi,

I was able to install .NET 4.5 without any problems using Winebottler (http://winebottler.kronenberg.org/). I've also changed the startup script startwine to make the SSH_AUTH_SOCK point properly to something accessible through Wine:

export SSH_AUTH_SOCK="D:$SSH_AUTH_SOCK"

I'm happy to share my KeePass.app with you if you think it will help.

dlech commented 9 years ago

I just got a new MacBook, so I was going to have a look at this. But in the course of working on the Unix Agent mode, I have realized that since Windows does not support Unix sockets, this isn't going to work. Even if we added the override that you suggested, KeeAgent would fail to load because new UnixClient () or the now working new UnixAgent () would fail with NotSupportedException.

If you want to share your KeePass.app, I might tinker with it a bit, but it does not look promising.

nifr commented 9 years ago

How is the current experience with WineBottler / Wine?

I'd really be interested in other people's (maybe more solid) solutions to running KeePass + KeeAgent on OSX, too.

I'm running KeePass version 2.30 with KeePassHttp 1.8.4.0 and KeeAgent beta 0.7.6.0 kind of successfully. I can access my passwords in ChromeIPass and KeeAgent's Client Mode works but KeePass ...

I'm on OSX Yosemite 10.10.04 (MacBook Pro (Retina, 15-inch, Mid 2015)) ... with mono --version ...

Mono JIT compiler version 4.0.4 ((detached/5ab4c0d Tue Aug 25 08:35:07 EDT 2015)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS:           normal
SIGSEGV:       altstack
Notification:  kqueue
Architecture:  x86
Disabled:      none
Misc:          softdebug
LLVM:          yes(3.6.0svn-mono-(detached/a173357)
GC:            sgen
bokysan commented 9 years ago

Hi @nifr,

you've come further through than I have. I wasn't able to get KeePassHttp running successfully -- I am currently without integration with Chrome.

Running it under native OS X mono got me nowhere (crashes all the time, looks horrible and when it works it feels like it's 1985) that's why I opted for the WineBottler option. At least it works, but there are lots of issues:

Happy to share my my install, but it's 1.1GB with all libraries installed. If there's any interest, I'll put it up on Dropbox or something.

dlech commented 9 years ago

I use KeeAgent and KeeFox on OSX regularly with a similar experience as @nifr. And yes, if you are willing to take the time to upload it, I'll have a look.

bokysan commented 9 years ago

Ok, this is my install: https://www.dropbox.com/s/ir6wdzscihm1u9a/KeePass%2021.28.28.app.7z?dl=0

May the force be with you.

nifr commented 9 years ago

I managed to get KeePassHttp working by unchecking ...

[ ] Show a notification when credentials are requested

... in the General Tab and checking ...

[x] Always allow access to entries  

... in the Advanced Tab under Tools -> KeePassHttp.

Otherwise KeePass crashes on every credential request when it tries to open the popup dialogue.

dlech commented 9 years ago

@boky8, I guess the force is not with me. I tried your .app last week and it just crashes while KeePass is starting.

bokysan commented 9 years ago

Bummer.

It did take a lot of tweaking to get it working. I know I played with a lot of settings while installing .NET under the wine-bottler to get it running at all.

If it's of any help, you can try bottling it yourself -- winetricks.log says the following was installed: remove_mono remove_mono remove_mono remove_mono remove_mono fontfix w_workaround_wine_bug-34803 dotnet20 w_workaround_wine_bug-30845 dotnet30 remove_mono dotnet20sp1 dotnet30sp1 w_workaround_wine_bug-33450 msxml3 dotnet35 remove_mono dotnet40 dotnet45 remove_mono consolas droid fontfix liberation lucida remove_mono

Currently this is still the most efficient way to run KeePass under OS X other than dual booting into Windows... :-/

dlech commented 2 years ago

Closing as superseded by #255.

As a side note, I just tried wine on mac again recently to run KeePass without much luck. Apparently there is a bug in one of the encryption libraries in wine so it did accept my master key. That makes me not trust wine for anything security related.