A Successful git-svn Workflow
March 17th, 2011
My experience diving into git and git-svn on a larger team.
Public/Private Key Cryptography isn’t exactly new stuff in the world of Computing. It makes our world go round. It is the basis for secure communication in today’s world. HTTPS, SSL, TLS, SSH are all cryptographic protocols that use Public/Private key infrastructures. Without these protocols, we would think twice about using credit card, banking or any other sensitive information on the Internet.
We all know that passwords aren’t very secure. If you choose a password that is easy to remember then its easier to guess via brute force. If you choose a password that is random or hard to remember then you are more likely to write it down. Any well-versed digital community member already has many username/password credentials to remember so we are less likely to remember extremely difficult random passwords. This is the password paradox, which leads me to look into managing access via public/private key pairs instead.
Github has an excellent tutorial with good illustrations on how to generate ssh keys with ssh-keygen, but here is an overview:
Definitely setup a passphrase! - Its like a password for your private key. The passphrase is a second line of defence if anyone were to acquire your private key.
The .pub
is your public key, you can safely share this anywhere, whereas the private key is entirely private! DO NOT show anyone, don’t copy it anywhere and only securely back it up.. This is your new password and large liability if it fell into the wrong hands.
Example: Some folks like to generate and manage keypairs for each location, or at least manage certain levels of keys, but I’m not going to dive into that topic.
Make sure that the server has Public key authentication enabled (most do). for OpenSSH it would be the following in the sshd_config
:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
Then all you have to do is:
.pub
) as a line in the ~/.ssh/authorized_keys
file (create it if it doesn’t exist)This is really handy for managing servers especially on Amazon’s EC2, local access between machines, SFTP, SSH tunneling, or even getting access to a jailbroken iPhone or any other device with OpenSSH installed on it.
The guys over at debian-administrator.org wrote a good guide to Password-less logins with OpenSSH that is worth looking into if you have issues or want to dive deeper.
Passwords aren’t very secure, you already know this. If you use one that’s easy to remember, it’s easier to guess or brute-force (try many options until one works). If you use one that’s random it’s hard to remember, and thus you’re more inclined to write the password down. Both of these are Very Bad Things™. This is why you’re using ssh keys.
My experience diving into git and git-svn on a larger team.
Git has a lot of tools in its shed but in my opinion, none is more powerful and useful than local developer branches.
I’ve been working with the Jive SBS platform for about 6 months at my current client. SBS stands for “Social Business Software“. At its heart, Jive is a portal product, with an emphasis on supporting social networking. Jive is a licensed product. It can be used effectively out of the box, but licensees have access to the source code (as well as the source of any open-source projects that Jive leverages). Jive provides a robust mechanism for customizing the functionality of the product via plug-ins that developers can create and install. I have found that the platform has some very useful functionality, as well as some substantial shortcomings. In this posting, I’ll describe some of the pros and cons of the platform (as I see them).
Insert bio here