ssh config配置--解决repo时manifest.xml里remote元素里fetch属性必须带上账号的问题
最近搭建repo仓库,使用manifest.xml文件配置remote信息,需要配置gerrit地址,fetch值为ssh://Fine@gerrit.com;如果把Fine写进去,各位研发repo init代码后,因为他们本地git config --global user.name 配置的都是自己账号, 在执行repo sync的时候,sync代码的账号却是我在manifest仓库定义的Fine用户,账户不一致:他们操作的本地服务器账号下的id_rsa.pub没有配置也不能配置在gerrit服务器的fine账号下的authorized_keys中。解决repo时manifest.xml里remote元素里fetch属性必须带上账号的问题,需要如下配置来绕过
还好,ssh 提供一种优雅且灵活的方式来解决这个问题,就是利用 ssh 的用户配置文件 config 管理 ssh 会话。ssh 的用户配置文件是放在当前用户根目录下的 .ssh 文件夹里(~/.ssh/config,不存在则新创建一个),其配置写法如下:
这个东西可以用来配置你连接不同的远程服务器,比如有两个github账户,或者两个git服务器等等。
Host gerrit(这里是自定义的host简称,以后连接远程服务器就可以用命令ssh vps
) User 这里填用户名(如:root) HostName gerrit.test.com 这里填服务器地址也可以是域名(如:server.xxoo.com) Port 这里填服务器open-ssh端口(默认:22) IdentityFile 这里是刚刚生成的私钥文件地址(如~/.ssh/id_rsa)