ssh-config配置
阿新 • • 發佈:2019-01-07
之前遇到這樣的一個問題:我有兩個github賬號,一臺電腦上都要訪問這兩個賬號,都使用ssh key認證方式,該怎麼配置ssh?
這裡先說說ssh的配置。
ssh的配置檔案
ssh client有兩個配置檔案,/etc/ssh/ssh_config
和~/.ssh/config
,前者是對所有使用者,後者是針對某個使用者,兩個檔案的格式是一樣的。
ssh配置檔案的格式
每一行是一個配置項,如下:
1 2 |
config value config value1 value2 |
也可以使用=號:
1 2 |
config=value config=value1 value2 |
空行和以#
所有的值是區分大小寫的,但引數名不區分。
示例
通常情況下使用ssh連線伺服器使用如下命令:
1
|
ssh username@server.com
|
這時會預設使用~/.ssh/id_rsa這個金鑰,如果想使用不同的金鑰則要:
1
|
ssh -i path/to/id_rsa username@server.com
|
如果不想每次都指定這些金鑰、使用者名稱、伺服器地址的話,可以在~/.ssh/config
中配置,如下:
1 2 3 4 |
Host server1 HostName server.com User username IdentifyFile path/to/id_rsa |
這樣就可以簡單的使用以下命令:
1
|
ssh server1
|
其實就相當於server1是個別名,可以任意取名。
在來看看最開始提出的問題,有兩個github賬號,這時可以用ssh-keygen生成兩個ssh金鑰,~/.ssh/id_rsa1和~/.ssh/id_rsa2,~/.ssh/config,每個賬號一個,配置如下:
1 2 3 4 5 6 7 8 9 |
Host github-user1 HostName github.com User git IdentityFile ~/.ssh/id_rsa1 Host github-user2 HostName github.com |
使用git clone時就用如下命令:
1 2 |
git clone github-user1:user1/repo.git git clone github-user2:user2/repo.git |