Git多账户:ssh管理多个秘钥
在我的主机上有两个账户,一个是用于ssh的账户而另一个是用于git的账户。出于安全考虑在主账户中设置了秘钥指纹密码,而不想每次deploy的时候都重复输入密码。所以需要管理多个ssh秘钥。
ssh config文件
在.ssh文件夹下默认是没有config文件的,这里可以手动创建一个config文件,并输入以下内容
1 | Host jhsyi77.com |
这样做的目的是在同一个主机上分别使用不同的账户登录时使用不同的秘钥进行验证,省去了选择秘钥的麻烦。
缺点是进行ssh登录时需要输入完整的hostname。
但是还不仅仅满足于此
了解到config文件之后还想更多的了解config文件的作用。
config文件的结构
1 | Host firsthost |
可以相对应设置每一个Host的登录选项
可以使用man ssh_config查看相关选项
例如我有两个服务器分别对应家里和公司的,可以这样设置
1 | Host home |
还可以使用通配符
1 | Host home |
直接可以使用ssh home或者ssh work 登录到相对应的主机
host可以自行设置
探索
以上基本可以解决大多数关于ssh多账户秘钥的问题。但是还有一些问题没有实现。
本着精益求精的精神,暂时还没有找到一种很简洁的修改config的方法。
比如说git使用ssh登录时不能使用host需要用hostname登录,但是在config文件中设置的是host相关选项,还需要添加一个host直接指向hostname才可以让git分配秘钥。暂时还没有理解透彻这个操作,希望有高人指出

