Just found the solution for adding multiple accounts to Bitbucket. The reason why it is not so straight forward is because one SSH key only can link up to one account. So if there is more than one account the method will be slightly different.
Here is how the step to resolve it.
After id_rsa and id_rsa.pub is used to assigned account A. For account B, I need to create another set of public and private key.
$ssh-keygen -t dsa -f ~/.ssh/newaccB -C "<your email address>" $chmod 600 ~/.ssh/newaccB* $ssh-add ~/.ssh/newaccB
After that you need to go to ~/.ssh/config to give ssh client further instruction when connect to the same bitbucket.org server but knowing when to use which private key.
Host bitbucket.org Hostname bitbucket.org User git IdentityFile /Users/<username>/.ssh/id_rsa Host bitbucket-accountB Hostname bitbucket.org User git IdentityFile /Users/<username>/.ssh/newaccB
So, after setting up when you want to use the account B key, you need to change the url to something such as below:
$git clone git@bitbucket-accountB:<username>/<project name>.git
For account A, you still can use the original ssh url to do so.
If you are using SmartGit, better to choose the System SSH in your preference. If not, you will still getting error.
PS: ssh-add ~/.ssh/newaccB might be adding behind after modify ~/.ssh/config