Issues in generating RSA key pair for GitHub

Recently, I ran into some problems in creating an RSA key pair which is required by github, before committing or pushing code to the online repository. I had downloaded the Rails installer kit (from here), and was trying my first stab at Ruby and Rails. Creating an open repository in github for pushing code required the creation of an RSA key pair, as described in the help pages. This is necessary as github uses SSH for the transfer of files to and from the local machine.

I had successfully created the RSA public and private keys, but ran into issues when testing whether the connection to the github repository worked, as github was not picking up the correct location of the keys in my local machine. To cut a long story short, the following describes what should be done, to avoid the hassle I went through.

When installing the Rails installer kit, Git is also installed alongside Ruby, the Rails framework, and sqlite. When navigating to the RailsInstaller folder after installation, you will find the bin folder inside the Git folder (/RailsInstaller/Git/Bin/) which contains the tools necessary for creating the RSA key pair. You have to include the Git’s bin location in the PATH environment variable (if it is not automatically configured during installation), in order to easily access the tool set from the command prompt. Also, if the ‘home’ system variable is missing, you will have to create a key ‘home’, which has value ‘C:\’


After setting the environment variable, I created a folder named “.ssh” in my C drive, and this is where github will look for the public key. Once the folder was ready, i created the key pair using the ‘ssh-keygen’ command. You have to enter the .ssh folder created as the location (watch out for the UNIX style folder location specifier), and id_rsa as the key (file) name. This will create a private key (id_rsa) and a public key (id_rsa.pub) inside the .ssh folder. Also enter a good pass phrase or hit enter without typing anything for a blank pass phrase (though entering one is recommended):


If you navigate inside the .ssh folder created, you would see the two keys, id_rsa and id_rsa.pub which were created. The next step would be to add the public key to your github account. Here, you will have to open the id_rsa.pub file in a text editor, copy the contents without any whitespace or newlines, and paste the contents as described in the “Adding the key to your github account” section in this page.

In order to test if everything went well, you can use the ‘ssh’ command, typing ‘ssh git@github.com’ (as described in the github help page as well) to see if you connect properly. When the prompt asks you whether you want to continue connecting, and you type yes, a ‘successfully authenticated’ message should be displayed:


The message shown above means that github properly identified your public key and you can push code using Git, from the local repository to github. Note that none of the above steps will work properly if the ‘home’ system variable does not exist or contain the value ‘C:\’, in order to indicate the home location that github uses to search for the .ssh directory. Since I’ve got my relationship with github stable and secure, my next adventure would be to deploy the Rails application at heroku, which will most likely turn out to be a future blog post. My first attempt at Ruby (and Rails, and Git, and sqlite), and I can safely say, “so far, so good”.


Thoughts on the Microsoft-Nokia Collaboration

Microsoft and Nokia have announced a partnership last Friday (11th Feb 2011) stating that Windows phone will be the OS for Nokia smart phones, leveraging each others complementary innovations. Going through the literature on the web, this announcement has invoked mixed reactions from various parties. My take on this matter is an objective look at what changes can be expected of this collaboration and what impacts they may have, gathered from the information that is currently available.

Firstly, the announcement is not the death spell for Symbian and Meego. The Symbian platform which is open source will be available at the symbian blog via FTP till March of this month. Nokia is committed to the development and evolution of the platform, although it is not clear how this will take place in the future. Meego is stated to be offered as an open source mobile platform in the future. Nokia expects to sell around 150 million Symbian devices in the next few years, and will be producing Meego devices till the end of this year after which it will transform into an experimental platform for research.

That being said, it is not clear what the real forecast is for Symbian and Meego is. Nokia has stated that Symbian will be a franchise platform, but it has been degrading in a low curve for some time now and it is hard to envision getting the boost from Nokia in the years to come. Meego could fare better as a test bed for research and innovation, and being open source, anything could happen.

Looking to the future where Nokia smartphones will be running the windows phone platform, there is a huge impact in the mobile, business and software development circles. The windows phone OS will be running on the top selling handset device globally, virtually overnight. Developers would spring to the opportunity provided by the platform explosion in scale. Businesses and end users could be targeted with the synergy of Nokia and Microsoft innovations. In an open letter by the CEO’s of Microsoft and Nokia, the decisions and changes to take place are stated, and it is interesting to note that many deal with the integration of the technical innovations of both parties to a large extent. This would open up avenues in the current market by leveraging developers to innovate and develop in quality and quantity, and by having the vast array of Microsoft services at the fingertips of a Nokia user base, not to mention cloud capabilities.

What seems to be an unexpected decision could very well be what is needed to turn the tables. Apple and Google will most certainly not be sitting around and observe proceedings. In my view, the partnership between Microsoft and Nokia and the expected outcome would boil down to a few questions:

  • What will the collaboration offer to end users, in terms of smartphone capability and visual appeal?
  • What will be the reception of the Windows, Symbian and other developer communities?
  • What will be catered to the existing Nokia customers and how will they respond?
  • How can Microsoft and Nokia collaborate and address the above points to the best positive effect?

It would be interesting to observe how the other players in the market respond to the ‘best of both worlds’ approach by the Microsoft-Nokia partnership. This is my perspective of last Friday’s announcement in a nutshell and I welcome your thoughts and suggestions on the turn of events.