====== X2Go Client smartcard HowTo ====== ===== The concept of GnuPG smartcard authentication ===== FixMe ===== GPG card configuration ===== user@x2goclient$ gpg --card-edit Application ID ...: D2760001240102000000000000420000 Version ..........: 2.0 Manufacturer .....: test card Serial number ....: 00000042 Name of cardholder: [not set] Language prefs ...: de Sex ..............: unspecified URL of public key : [not set] Login data .......: [not set] Private DO 1 .....: [not set] Private DO 2 .....: [not set] Signature PIN ....: forced Max. PIN lengths .: 24 24 24 PIN retry counter : 3 0 3 Signature counter : 0 Signature key ....: [none] Encryption key....: [none] Authentication key: [none] General key info..: [none] Command> admin Admin commands are allowed Command> sex Sex ((M)ale, (F)emale or space): M gpg: 3 Admin PIN attempts remaining before card is permanently locked Admin PIN Command> login Login data (account name): beispielb Command> generate Make off-card backup of encryption key? (Y/n) n Please note that the factory settings of the PINs are PIN = `123456' Admin PIN = `12345678' You should change them using the command --change-pin PIN Please specify how long the key should be valid. 0 = key does not expire = key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) " Real name: Bert Beispiel Email address: bert.beispiel@x2go-test.org Comment: Test user You selected this USER-ID: "Bert Beispiel (Test user) " Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (17 seconds) gpg: signatures created so far: 0 gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (14 seconds) gpg: signatures created so far: 1 gpg: signatures created so far: 2 gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (13 seconds) gpg: signatures created so far: 3 gpg: signatures created so far: 4 gpg: key 8CE52B35 marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model gpg: depth: 0 valid: 8 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 8u pub 1024R/8CE52B35 2009-09-24 Key fingerprint = 2475 8498 7FF4 2727 B476 F72E 7BF2 CFE9 8CE5 2B35 uid Bert Beispiel (Test user) sub 1024R/C7151669 2009-09-24 sub 1024R/593801C0 2009-09-24 Command> quit IMPORTANT: login Name is a name of user on remote system Be sure, that pinentry-x2go is installed. For test purposes you can use other pinentry program, but for x2goclient pinentry-x2go is required user@x2goclient$ gpg-agent --enable-ssh-support --daemon --pinentry-program /usr/bin/pinentry-x2go GPG_AGENT_INFO=/tmp/gpg-Xh4lY7/S.gpg-agent:24620:1; export GPG_AGENT_INFO; SSH_AUTH_SOCK=/tmp/gpg-LO41WU/S.gpg-agent.ssh; export SSH_AUTH_SOCK; SSH_AGENT_PID=24620; export SSH_AGENT_PID; Export SSH environment variables (copy gpg-agent output in console) user@x2goclient$ GPG_AGENT_INFO=/tmp/gpg-Xh4lY7/S.gpg-agent:24620:1; export GPG_AGENT_INFO; user@x2goclient$ SSH_AUTH_SOCK=/tmp/gpg-LO41WU/S.gpg-agent.ssh; export SSH_AUTH_SOCK; user@x2goclient$ SSH_AGENT_PID=24620; export SSH_AGENT_PID; You can check the key on your smart card with command: user@x2goclient$ ssh-add -l 1024 ef:d5:8c:37:cb:38:01:8d:c2:30:00:ac:93:a2:43:98 cardno:000000000042(RSA) Copy public part of your key to remote computer user@x2goclient$ ssh-copy-id beispielb@x2goserver beispielb@x2goserver's password: Now try logging into the machine, with "ssh 'beispielb@x2goserver'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. Testing ssh connection user@x2goclient$ ssh beispielb@x2goserver Last login: Thu Sep 24 22:00:50 2009 from x2goclient beispielb@x2goserver:~$ exit stop gpg-agent: user@x2goclient$ kill $SSH_AGENT_PID ===== Start X2Go Client with GnuPG SmartCard Support ===== Using smart card authentication with x2goclient user@x2goclient$ x2goclient --pgp-card