Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. ## Generate new SSH key
  2. `$ ssh-keygen -t rsa -C "your_email@email.com"`
  3.  
  4. for example, created key for 2 accounts
  5. ```
  6. ~/.ssh/id_rsa_user1
  7. ~/.ssh/id_rsa_user2
  8. ```
  9.  
  10. ## Add SSH keys to ssh-agent
  11. ```
  12. $ ssh-add -K ~/.ssh/id_rsa_user1
  13. $ ssh-add -K ~/.ssh/id_rsa_user2
  14. ```
  15.  
  16. you also need to modify `.ssh/config`
  17. ```
  18. #user1 account
  19. Host github.com-user1
  20. HostName github.com
  21. User git
  22. IdentityFile ~/.ssh/id_rsa_user1
  23.  
  24. #user2 account
  25. Host github.com-user2
  26. HostName github.com
  27. User git
  28. IdentityFile ~/.ssh/id_rsa_user2
  29. ```
  30.  
  31. ## Add SSH key to github account
  32. copy key to your clipboard then paste it into your github setting
  33. `$ pbcopy < ~/.ssh/id_rsa_{user}.pub`
  34.  
  35. ## Usage
  36. **setting global git user**
  37. ```
  38. git config --global user.email "global_email@email.com"
  39. git config --global user.name "global-name"
  40. ```
  41.  
  42. **setting local git user**
  43. ```
  44. git config user.email "local_email@email.com"
  45. git config user.name "local-name"
  46. ```
  47.  
  48. then, you also have to delete all SSH keys and add a needed key because global key always overide the local one
  49. ```
  50. # delete all keys before
  51. $ ssh-add -D
  52.  
  53. # add needed key
  54. $ ssh-add ~/.ssh/id_rsa_{user}
  55. ```
  56.  
  57. use `ssh-add -l` to list all added keys
  58.  
  59. ## Bonus
  60. **shell command**
  61. ```
  62. guser() {
  63. G_USER=${1:="global-name"}
  64. if [ $G_USER = "local-name" ]
  65. then
  66. git config user.name "local-name"
  67. git config user.email "local_email@email.com"
  68. fi
  69. ssh-add -D
  70. ssh-add $HOME/.ssh/id_rsa_$G_USER
  71. ssh-add -l
  72. }
  73. ```
  74.  
  75. you can use `guser` for global user and `guser {local-name}` for local user
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement