Great development always happens under source‑control.
In fact many developers rightly argue that what happens outside source‑control management isn’t really development at all.
All projects Web Deli™ is engaged in are carried out under source control and by preference Git+ specifically. We also use the fantastic tools from time to time at github.com and more recently bitbucket.org (Atlassian) for hosted repositories.
The challenge that comes up as we work in dynamic teams and on different projects or at a client’s site office for a period of time is access management across different locations.
To solve this challenge - project specific SSH keys are generated for each new project. This allows us to enable secure access to the repository for the duration of the project and allows for a division between project and post-project access management in a way that does not break or interfere access at other sites.
The following post demonstrates how to create a project specific key. We configure then key management on our development platform (Mac OS X). The following is one method, but certainly not the only approach.
First we want to create a new key for an example project for Nokia. Open Terminal and issue the following command:
ssh-keygen -b 4096 -C "This is the Nokia project key" -f nokia_project_rsa -N MySecretPassword -t rsa
So what does this code do:
- ‘ssh-keygen’ – This is the command used to create our new SSH project key. The rest of the sting are the options described below:
- ‘-b’ – This option specifies our key-size in number of bits, because we all love a ridonculous level of security, the resulting key-size in our example is 4096 bits.
- ‘-C’ – This option allows us to specify a comment for our generated key.
- ‘-f’ – This option specifies the name of the files to be output.
- ‘-N’ – This option specifies the passphrase for the private key
- ‘-t’ – Finally this option specifies type of key to create: RSA in this example.
That should result in the following output:
Generating public/private rsa key pair. Your identification has been saved in nokia_project_rsa. Your public key has been saved in nokia_project_rsa.pub. The key fingerprint is: 41:30:cf:a2:b0:f2:4e:01:47:79:6b:d1:7d:8c:95:f1 This is the Nokia project key The key's randomart image is: +--[ RSA 4096]----+ | .. .oo.+oo | | .. o .=o +. | |. o. o. +. E | | o oo. . . | |. o.. S | | o . | | o | | o | | . | +-----------------+ webdeli:~ admin$
Now the public key found in the ~/.shh folder may be added to the access control on the git repository and used for the duration of the project.









