Git - 生成 SSH公鑰 , Linux 下多密鑰管理

不少網上免ssh密碼使用git的命令都沒有考慮到多個公鑰密鑰的狀況, 這裏蒐集並整理一下管理多個ssh公鑰密鑰的步驟。linux

1. ssh 公鑰密鑰生成

首先生成公鑰和密鑰,默認狀況公鑰的文件名比密鑰末尾多.pub, 下面以管理coding.net和github.com兩個git倉庫的ssh公鑰密鑰爲例 (若是是在windows下,請安裝git客戶端而後使用git bash來鍵入下面的命令; 若是是在linux下,則直接使用終端便可)git

ssh-keygen -t rsa -f ~/.ssh/id_rsa.coding -C "Key for coding.net"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "Key for GitHub stuff"
複製代碼

這個命令直接經過-f參數指定了密鑰和公鑰的文件名, 好比-f ~/.ssh/id_rsa.coding,其生產的密鑰爲~/.ssh/id_rsa.coding, 公鑰爲~/.ssh/id_rsa.coding.pub,生成好了公鑰和密鑰後, 把公鑰文件中的內容追加到~/.ssh/authorized_keys文件的末尾, 同理github的公鑰密鑰的生成方式相似。github

注意追加前authorized_keys文件的末尾須要有個換行符。windows

2. ssh 公鑰密鑰內容

ssh-rsa AAAAB3NzaC1yc2EAAaaaaaaupeyE1NMMrb121244DwhwFLsPFiFr
Fb1QUwQtX2m/YSi8ELn3Vga/5AhfKKPWG+nOczWZxi0XguiyAslRiiowXaUj
BYei5NHHBcAy+GiZWs4u8h3ZU7uGvwmQlqHf8tQ/I0J1RNR6nQ8Ra9882398
akk23h9Hhp63EagSbpkefg7qScroq0+VZ2yfLyjUCLgxhb+Eah+r9EqQ4l%H
EF;asd8hLQw449W1SzKz3hCwxFAJFKbj/n+J50vNXB3fLNeTNiq@OOIkn324
n802Do5jIZGFzNrYsIRFbJVbHvIsodyXDmz6Qbqlx87xmEQ== admaaa@163.com

ssh-rsa AAAAB3NzaC1yc2EAAAaa2#@8923n(&@hfg2-
hg9002nkglsdfPCBUhDN185+jyoJQRwLImRr6IOwh/LS
BS1N22pO#NG3434ng90u32n@0)@#NKDLHWO:@_jqtUIB
r8UzWzliM5Zcn9U/DjSjuAiP/SFg1JEoXfWSFToWQpYN
bGS9VFwU83MH1iGGDUeaeHY5mAMWy57ym/+Jm/hPs1I3
E+OtDT9+K1RyIGr44Ur7aWpKZ/PMgiuPUc6qfGFVP4xvRw== myyyy@gmail.com
複製代碼

**同時把這個公鑰添加到git倉庫ssh key管理的地方,好比github是在Settings–>SSH Keys裏面bash

3. 多密鑰管理 ~/.ssh/config

當有多個ssh密鑰須要管理時,必定要修改config文件的權限,不然你配置後仍然時無效的**ssh

touch ~/.ssh/config
chmod 600 ~/.ssh/config
複製代碼

~/.ssh/config文件的內容爲:測試

Host github.com
IdentityFile ~/.ssh/id_rsa.github
User git
Host git.coding.net
IdentityFile ~/.ssh/id_rsa.coding
User git
複製代碼

其中User後面的值爲你訪問的git ssh地址的@以前的部分, 好比:git@github.com:dongritengfei/beego.git 其中的@前面是git,因此User後面的值爲git。 Host就是你的git倉庫的域名或者IP。ui

4. 訪問測試

而後是用這個命令來測試是否配置okspa

ssh -T git@github.com
Welcome to GitHub, you name!
複製代碼

若是你看到這個就說明你ok了,若是你看到下面的樣子:.net

Bad owner or permissions on /home/admin/.ssh/config

# 那你須要執行
chmod 600 ~/.ssh/config
複製代碼
相關文章
相關標籤/搜索