IRC log for #utos on 20110929

03:47.00*** join/#utos josePHPagoda (~josePHPag@24-116-177-210.cpe.cableone.net)
04:44.03*** join/#utos mindjuju (~mindjuju@173-10-26-193-BusName-utah.ut.hfc.comcastbusiness.net)
04:44.03*** join/#utos Nafai (~nafai@travishartwell.net)
04:44.04*** join/#utos goozbach (~goozbach@fedora/goozbach)
04:44.04*** join/#utos herlo (~clints@fedora/herlo)
04:44.04*** mode/#utos [+o herlo] by niven.freenode.net
13:10.45*** join/#utos bmac2 (~bmac2@63.230.14.10)
13:10.45*** join/#utos Tungsten_Jack (~Tungsten_@pdpc/supporter/active/jnbek)
14:17.22*** join/#utos redbeard2 (~jphall@173-10-19-106-BusName-utah.ut.hfc.comcastbusiness.net)
14:19.06*** join/#utos fugue88 (~dsowen@173-165-137-65-utah.hfc.comcastbusiness.net)
14:24.52*** join/#utos josePHPagoda (~josePHPag@24-116-177-210.cpe.cableone.net)
14:50.33*** join/#utos sinuhe (~sinuhe@ip65-44-231-178.z231-44-65.customer.algx.net)
15:12.15*** join/#utos macnewbold (~Adium@76.8.223.101)
15:18.41*** join/#utos redbeard2 (~jphall@BEYOND-OBLI.car1.SaltLakeCity1.Level3.net)
15:19.41*** join/#utos littleidea (~littleide@pool-72-95-239-40.pitbpa.east.verizon.net)
15:20.53*** join/#utos mindjuju (~mindjuju@173-10-26-193-BusName-utah.ut.hfc.comcastbusiness.net)
16:09.38*** join/#utos cro (~cro@204-228-149-217.ip.xmission.com)
16:10.05*** join/#utos xtrementl (~xtrementl@neutroninteractive-xmission.xmission.com)
17:47.20*** join/#utos josePHPagoda (~josePHPag@24-116-177-210.cpe.cableone.net)
19:04.12herlojosePHPagoda: ping
19:06.50josePHPagodaherlo: pong!
19:07.44herlojosePHPagoda: hi
19:07.57josePHPagodayou pinged me?
19:08.01josePHPagoda:D
19:08.08herloI did
19:08.25herlohave an interesting question for you, and possibly anyone else in this group
19:08.28josePHPagodakk
19:08.29herlos/group/channel/
19:08.49herloThe question has a bit of explanation before it
19:09.13josePHPagodano time like the now
19:09.16josePHPagoda:D
19:09.36herloFirst off, as you know, we are working on GoOSe Project using github as our main point for repos, issues and even their wiki in places
19:09.59herlowe're using github pages to create our new gooseproject.org site and a bunch of other tools, like skein, chase and grapple
19:10.24josePHPagodaaight
19:10.27herloin our quest to gain more contributors, we wanted to make it easy for them to join and get involved
19:10.34herloso we came up with a simple schema to join
19:10.51herlofirst, fork the https://github.com/gooseproject/join repository
19:11.01herlosecond, add your contributor information to the contrib file
19:11.07herlothrid, submit a pull request
19:11.14josePHPagodakk
19:11.33herloafter submitting, we will add the user (manually currently) to the GoOSe github team
19:11.37herlobut
19:11.48herlowe also want to have them provide a ssh public key
19:12.01herloand this is where our dilemma starts
19:12.23herloone thought was to just have them upload their public key to the join repo in a keys/ directory
19:12.32herloand that would be all well and good
19:12.42herloexcept that people are human, and make mistakes
19:13.06josePHPagodayou could have them email the private key?
19:13.08herlosome would accidentally or unknowingly upload their private key
19:13.14herlojosePHPagoda: hang on
19:13.16josePHPagoda:-P
19:13.23josePHPagoda(whoops, i said private... now I feel evil)
19:13.31herlowith the same fork and pull request process
19:14.04herloonce they perform a push to their fork, the private key is public and for all intents and purposes compromised
19:14.30herloanother thought was to create a goose gpg key and have each contributor encrypt their pubkey with that and commit the values tha tway
19:15.16herloand in another conversation, having contributors email their key was brought up. But that way doesn't scale too well unless we write a bunch of hooks to verify and push the keys
19:15.34herlojosePHPagoda: so I ask you (and anyone else here) for thoughts on the process.
19:15.54herlojosePHPagoda: specifically I ask you because I wanted to know how pagodabox does ssh key management for your systems
19:17.22josePHPagodaah
19:17.28josePHPagodawe actually have a db with all of the keys in it
19:17.36josePHPagodaand we modified our ssh server to auth against that db
19:17.36herloa real db?
19:17.41josePHPagodayeah
19:17.45herlowow
19:17.51josePHPagodawhy wow?
19:18.06herloso your users create a pagodabox account, and upload their ssh keys how?
19:18.14josePHPagodaright now, they don't
19:18.18josePHPagodathis is all in preperation
19:18.23josePHPagodait's very similar to how github does it though
19:18.47herlohmm, gh does it by having them copy/paste the key into the user's account
19:18.52josePHPagodayeah
19:18.57josePHPagodayou could also have them browse to the file
19:19.02josePHPagodaand verify that it isn't in .pub
19:19.04josePHPagodaif you really wanted to
19:19.12herlowhich is what we want to have, but those aren't for the organization to see. If it was, I think life would be much simpler.
19:19.29josePHPagodaerr... i mistyped
19:19.33josePHPagodabut I think you understand
19:19.44herlono, I'm confused actually by your statement
19:20.02josePHPagodayou could have them browse to the file and upload it, and only let them upload files ending in.pub
19:20.17josePHPagodato help ensure to accidental private keys being uploaded
19:20.21herlojosePHPagoda: I think the verification process isn't the problem
19:20.33herloit's the simplicity and trying to avoid reinventing the wheel
19:20.41josePHPagodayeah
19:21.04herloas it is, contributors are going to have to upload their key to github and to goose in some fashion
19:21.13josePHPagodayeah
19:21.50herlowhich isn't ideal to me, but seems like we can't avoid it
19:22.26herlofedora does this with the Fedora Account System (fas)
19:22.39herlobut it seems like overkill for us
19:22.44herloat least for now
19:23.00josePHPagodayeah
19:24.19herlojosePHPagoda: I'm kind of leaning toward the gpg-encrypted-armored solution
19:24.36josePHPagodahmm
19:25.53herloit makes it secure enough to put on a github public repo, meaning that the only way to obtain said public keys (which really wouldn't be at risk as long as the corresponding private key isn't compromised) would be to have the gpg private key which only goose core would have, or something like that
19:29.04josePHPagodadamage control in the event of a key leakage would be a pain though
19:29.07josePHPagodareally really really messy
19:29.37josePHPagodabut I dunno
19:29.53josePHPagodaif I'm understanding this right, the only way it could be leaked is if someone accidentally grabbed the wrong key yes?
19:32.22herlono
19:32.43herloonly if someone compromised both the private gpg key owned by goose AND the private ssh key owned by a contributor
19:32.57herloboth of which should be kept private
19:34.20herlojosePHPagoda: there is a possibility still that individuals will not follow instructions, but I don't think you can prevent against that completely
19:35.41fugue88s/possibility/certainty/
19:35.56herlolol
19:36.04herlofugue88: do you have any thoughts on this?
19:36.27goozbachgpg + armor
19:36.31goozbachmy vote
19:36.32fugue88Nope.  I haven't really read any of this.  Just enough to interject snarky comments.
19:36.33herlogoozbach: for sure
19:36.56herlogoozbach: it is the same convo being had in #gooseproject, just looking for alternate perspectives
19:37.12fugue88I can read it in a bit, if you want.
19:37.17herlosure
19:37.21herloalways looking for input
19:37.38herlogoozbach: that's the direction I'm leaning
19:40.41fugue88herlo: Yeah, accidental exposure of private key material is bad.  :(
19:40.48herloindeed
19:40.55fugue88I like e-mail stuff, then at leasts things stay mostly-private.
19:41.15fugue88I think on either SSH or GPG keys you ought to be able to tell automatically whether you got a public or private key.
19:41.43fugue88It *is* one extra step (and the github pull request is *cool* thinking), but it's also fairly easy and 1-time.
19:41.47herloemail doesn't scale so well though after about 10 a day
19:42.05fugue88Less well than dealing with pull requests?
19:42.17herlopull requests are git pull <url> master
19:42.28herloand it already comes through an email
19:42.41herlobut I only have to read that there is one and perform a simple task
19:43.13fugue88What about setting up a simple web form, wherein they can paste their key?
19:43.24fugue88LP does that.
19:43.29fugue88LP=Launchpad.
19:44.03herlofugue88: yeah, in fact github does that
19:44.17herloI just wish we could grab the key for users in our org directly from github
19:44.38herlofugue88: it's still on my list of ideas, but I am hoping to avoid using other infrastructure
19:44.49fugue88While encrypting to a goose key is also cool, if you can trust your contributors to do that correctly, you can trust them to get their public key correctly.
19:45.25fugue88As in, you'd probably get people who forget to encrypt to the goose key.  *And* maybe also send in their private key.
19:45.37herlofugue88: true, but at least with an additional gpg encryption, we can better protect ourselves from compromise
19:46.08herlonot so much on the 'can a contributor do the right thing' as much as 'what if their machines is compromised' front
19:46.32fugue88So, protecting goose if the contributor's machine is compromised?
19:46.39fugue88hmm...
19:47.14fugue88I don't see how having public ssh/gpg keys encrypted to a public goose key for a join-the-project-pull request helps with that.
19:47.32fugue88But I'm also not familiar with github.
19:48.21herlowell, the ssh pubkey is the contributors
19:48.30herlothe gpg would be goose's pubkey
19:48.52herloand we'd gpg encrypt the ssh pubkey with the goose gpg-pubkey
19:49.28fugue88Yep, I'm still not seeing the aforementioned benefit.
19:49.45herloum
19:49.55herloso it's all in a public git repo
19:50.19fugue88Let me put it this way.
19:50.29herloisn't sure what fugue88 is getting at yet
19:50.32fugue88Assume their public ssh keys are left in the repo, unencrypted.
19:50.40fugue88Then, a developer's machine is compromised.
19:50.47fugue88What's the attack vector you're worried about?
19:51.20herlowell, if their machine is compromised and someone wants to do malicious things to the goose servers where the corresponding public lives...
19:51.35herlothey NOW CAN!! </scary voice>
19:51.48fugue88How does having an unencrypted public ssh key in the repo give the attacker access to anything?
19:52.35herlofugue88: because the point of having the ssh pubkey in the repo is only the first step to gaining access to goose's servers. We will be taking those and distributing them at some point into places so the contributor can access certain machines
19:53.07fugue88But, the repo itself isn't the weakness?
19:53.08herloonce the ssh pubkey is on a goose server, whoever has the private key can now access
19:53.47herlofugue88: correct. There's a fairly common standard however, to not directly publicize the pubkey even though it's said it can be public
19:53.57herlostandard may not be the right word
19:54.13fugue88herlo: Oh, I see.
19:54.35fugue88Having the unencrypted public key in a public repo tells attackers where to focus their efforts in compromising developer machines.
19:54.38fugue88Right?
19:54.45herloaye
19:54.48*** join/#utos mindjuju (~mindjuju@173-10-26-193-BusName-utah.ut.hfc.comcastbusiness.net)
19:54.48fugue88Weak.
19:54.53fugue88They can watch the mailing list.
19:54.58fugue88;P
19:55.09herlolol, if we did it by email, it wouldn't be to a ml
19:55.32fugue88No, the project mailing-list.  They'll see who's participating anyway, by watch the project ml.
19:55.50herlofugue88: true, but then they have to have two private keys, not just one
19:55.56fugue88Why two?
19:56.06herlossh private key, and gpg private key
19:56.11herloone from the contributor, one from goose
19:56.17fugue88Why would they need a private gpg key?
19:56.26herloto decrypt the gpg encrypted ssh key
19:56.43herlohow else would you decrypt a gpg encrypted bit of text?
19:56.44fugue88Why would they need to decrypt a public ssh key?
19:56.49fugue88herlo: heheheh
19:56.55herlosame point I made amoment ago
19:56.59fugue88I don't think it is.
19:57.11herlobut it is
19:57.20herlolet's back up just a bit
19:57.21fugue88The point you made is that the unencrypted keys in the repo form a directory, where an attacker can see who the devs are.
19:57.30herlothat is *one* point
19:57.34fugue88So they know whose personal machines to attack.
19:57.38herlotrue
19:57.47fugue88But that same participation directory is available publicy in several other places.
19:57.59fugue88No use plugging one source unless you plug them all.
19:58.06herlohmm
19:58.56herlothe point I was getting at was that the gpg encryption would be just another layer, but you are saying that if the contributor is compromised we are screwed anyway
19:59.03fugue88Right.
19:59.05herlocan see that now
19:59.20herlowhich is why it's good to have this conversation :)
20:00.40herlofugue88: so it seems that pushing the ssh key to a public location isn't the problem
20:00.55herlobut I don't think we can prevent the other problem
20:01.11fugue88other problem being accidentally pusing an *private* ssh key?
20:01.15herlowe can mitigate it
20:01.27herlofugue88: well, there's that
20:01.33herlowhich is another concern altogether
20:01.59herloand the gpg encryption would prevent, but if they can't push a ssh pubkey in the first place, they may not do the encryption properly
20:02.10herloheroku deals with this by looking only in certain places
20:02.34herloso writing a little tool to do it might be possible as well.
20:03.02herloand using a simple form to post might also be viable
20:15.31goozbachhaving a pre-recieve hook check to see if it's a pubkey may help mitigate the 'push private key' problem
20:19.45herlogoozbach: well, that would imply we don't use the fork and pull request method
20:51.25*** join/#utos macnewbold1 (~Adium@76.8.223.101)
21:23.03*** join/#utos xtrementl (~xtrementl@69.80.96.49)
21:31.38*** join/#utos xtrementl_ (~xtrementl@neutroninteractive-xmission.xmission.com)
23:02.30goozbachanyone done anything with python-paramiko?
23:03.53herloyes
23:04.02herloI use it in my Silver project
23:04.48goozbachI need to exec a command but with forcing a tty on the far side
23:05.12herloI think I did something similar
23:05.15herlohagn on
23:05.17goozbachie this command works:
23:05.27goozbachssh -t root@host <COMMAND>
23:05.32goozbachbut this one doesn't
23:05.39goozbachssh root@host <COMMAND>
23:05.50herlokk
23:05.53goozbachand I really don't want to get into pyexpect for this one usage
23:07.02herloare you trying to do something with screen?
23:07.20herlowhy do you need the -t?
23:09.31goozbachnot with screen
23:09.35goozbachit's a nexenta box
23:09.43goozbachand I'm trying to install a solaris package instead of a deb
23:09.53herloI use paramiko very minimally
23:09.54goozbachand something the solaris package does needs a tty
23:10.09herlobut iirc, it does have some sort of functionality like that
23:10.10goozbachif I don't pass the -t switch the install just hangs
23:10.16herloahh
23:10.17goozbachI know paramiko does
23:10.29goozbachbut I don't want to do a full blown interactive terminal
23:10.38goozbachjust want the danged tty to be alocated
23:10.45herloyeah
23:11.12herlocan you put the -t option in the .ssh/config??
23:11.29goozbachI suppose
23:11.50herlothis may help then: http://www.saltycrane.com/blog/2010/02/python-paramiko-notes/
23:11.51goozbachbut I don't know if paramiko honors that
23:12.38herloit should
23:12.45herloaccording to that blog post for sure
23:16.43goozbachok
23:16.49goozbachlet me try the ssh config trick
23:19.18herlobrb
23:21.30goozbachdoesn't look like you can force tty with .ssh/config
23:27.24goozbachI've tried this to no availhttp://stackoverflow.com/questions/2909481/paramiko-and-pseudo-tty-allocation
23:43.46herlolooks
23:44.22herloyeah, that kind of looks like what I did
23:44.37herlogoozbach: the other option is to use Popen.call
23:46.05goozbachpopen?
23:47.21herloyeah, hang on, I'll get you an example
23:48.28herlogoozbach: I do it like this for uploading the srpm sources to the lookaside cache
23:48.30herloargs = ["/usr/bin/rsync", "-loDtRz", "-e", "ssh", "%s/%s" % (self.name, source), "%s@%s:%s/" % ( sks.lookaside_user, sks.lookaside_host, sks.lookaside_remote_dir)] p = subprocess.call(args, cwd="%s" % (sks.lookaside_dir), stdout = subprocess.PIPE)
23:48.48herlothat was supposed to be two lines
23:49.01goozbacheek
23:49.02herlop = subprocess.call(args, cwd="%s" % (sks.lookaside_dir), stdout = subprocess.PIPE)
23:49.21herlogoozbach: it's just calling what you would on the command line with python
23:49.26goozbachyeah
23:49.33herlowhat's wrong with that?
23:49.41goozbachthis is only a stopgap
23:49.51herloimport subprocess
23:49.54goozbachas we'll be replacing ssh with some other communitcation medium
23:49.57herlothat's the only other thing you hve to do..
23:50.07herlogoozbach: yeah, so doing this is pretty simple
23:50.14herloyour command can be split into args
23:50.22herlothen submitted to subprocess.call
23:50.35herlothe one I did is a bit more complex than it needs to be
23:50.52herlossh -t root@host <COMMAND> would be
23:51.37herloargs = ["/path/to/ssh", "-t", "user@host", "'command'"]
23:51.54herlop = subprocess.call(args)
23:52.07herlothe p is the pid
23:52.40goozbachthat'll work for now I suppose
23:52.41goozbachthanks
23:53.18herlo:)
23:53.34herloI can play with paramiko for you and get the other way to work too
23:54.06goozbachI just need to get this to work
23:54.12goozbachso I'll punt
23:54.16goozbachwith subprocess
23:54.30goozbachI'm thinking I need to avoid worrying about paramiko and just get it done
23:55.19herloyeah, I just meant I can look at it and hack it for you later tonight/tomorrow

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.