GIT如何指定使用某个SSH进行clone操作

先说一下本地和服务器间的ssh连接

一般使用ssh命令进行远程登录,都要输入口令。如果使用了ssh,则可以免密登录。具体方法如下:

保证本地有ssh密钥对,一般默认的是id_rsa(私钥),id_rsa.pub(公钥)。具体生成方法,可百度搜索,很容易。私钥留在本机中,将公钥追加到服务器上的authorized_keys文件里,具体路径为"~/.ssh/authorized_keys"。使用scp命令或者手动复制粘贴都可以。

以上 就完成了本机与服务器间的ssh信任步骤。下次再登录就可以不用输密码了。


先说一下场景:在服务器端部署项目时,一般都是从git服务中拉取的。但服务器不光自己用,别人也会用,连接的git账号也存在多个。每个git账号对应的ssh也不一样,这样,服务器就会存在多个ssh密钥对。那么,当你使用服务器部署的时候,肯定要将你的ssh密钥(服务器端存一个私钥,对应的公钥在git上添加)告诉你的git服务器。如何告诉git 服务你要用哪个ssh呢?

答案是:config文件!

在~/.ssh路径下 创建config文件,有则不用创建了。大致内容如下

Host hostName

        HostName 你的git服务器的域名:一般是github.com,如果公司有自己的git域名,就添加在此处

        User  你的git账号名称

        PreferredAuthentications publickey  

        IdentityFile  你的私钥存储的路径 如 ~/.ssh/xxx

这块算是声明了你要使用哪个密钥,那么怎么告诉git呢?这块我真是浪费了半天的时间,因为看别人的文档,被误导了。这块特别记录一下:

在git clone的时候,我们一般是这么写 git clone [email protected]:xxxxxx/xxxxx.git。好。在这我们要做一些改动:git clone git@hostName:xxxxxx/xxxxx.git 。这样clone的时候,服务器会去config文件里找到host名为hostName对应的私钥文件,与git上存放的公钥进行加解密,校验是否合法。

以上就完成了git指定ssh的操作。

再多啰嗦一句:

系统默认的ssh文件名为:id_rsa,id_rsa.pub。如果你想改变系统默认的ssh,但又不想覆盖原来的ssh文件。可以这么做:ssh-add xxxx(你想用的私钥文件) 即可。如果ssh-add 用不了,需要先执行这样的命令:ssh-agentbash --login-i 即可。

你可能感兴趣的:(GIT如何指定使用某个SSH进行clone操作)