美文网首页
管理多个SSH KEY

管理多个SSH KEY

作者: 热干面一元五 | 来源:发表于2020-11-24 11:18 被阅读0次

    [toc]

    查看

    ssh-add -l 
    
    3072 SHA256:HpFoxdG1UO2U+gX3r45Z9SJrBjSZ/SlT3wH+BDCrQz0 youremail@example.com (RSA)
    3072 SHA256:VlXQsANIE7eH/Gttk2vAsvQ6bMzZTvWSgMdu9U3ynog youremail@example.com(RSA)
    

    生成不同名称的ssh密钥

    # 其中gitlab,github, 和name 我主要用来区别是那个平台,自己可随意只要你能区分就行
    ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab.name -C "youremail@example.com"
    ssh-keygen -t rsa -f ~/.ssh/id_rsa.github.name -C "youremail@example.com"
    

    输入过程中可以不输入密码, 直接回车,懒人方式

    会在 ~/.ssh/, 目录下生成两个文件, 一个是 id_rsa.gitlab.nameid_rsa.gitlab.name.pub 文件,

    新建ssh配置文件

    touch ~/.ssh/config
    

    config的内容如下:

    #github配置
    # 别名 , 如果是你又多个github 账号, 需要配置多个sshkey 就用这个来区分的
    # 多个github 账号 : Host username.github.com 
    
    Host github.com
    # 端口, 默认是22可以不写,如果自己搭建的服务器监听的是其他端口这个参数必须声明
    Port 22
    #  IP地址或者域名
    Hostname github.com
    # 下面可以直接写 `git` 当然你也可以写指定用户
    user user@github.com
    # 对应的私钥路径
    IdentityFile ~/.ssh/id_rsa.github
    
    #gitlab配置
    # 别名 , 如果是你又多个github 账号, 需要配置多个sshkey 就用这个来区分的
    # 多个github 账号 : Host username.github.com 
    Host gitlab
    # 端口, 默认是22可以不写,如果自己搭建的服务器监听的是其他端口这个参数必须声明
    Port 22
    # IP地址或者域名
    Hostname gitlab.com
    # 下面可以直接写 `git` 当然你也可以写指定用户
    user user@gitlab.com
    # 对应的私钥路径
    IdentityFile ~/.ssh/id_rsa.gitlab
    

    添加私钥

    ssh-add ~/.ssh/id_rsa.gitlab
    ssh-add ~/.ssh/id_rsa.github
    

    配置公钥

    # ~/.ssh/ 下面的.pub 文件全部都是公钥,需要上传到对应的平台, 流程略, 参考平台地址
    cat ~/.ssh/xx.pub
    将输出的结果复制
    

    设置远程库的地址

    git remote add origin git@github:test/test.git
    

    测试

    
    ssh -T git@github.com (域名)
    ssh -T git@config文件中的别名 
    ssh -T git@ip地址
    
    # 终端输出
    Hi Rosalindjuan! You've successfully authenticated, but GitHub does not provide shell access.
    
    • 如果终端有新添加的ssh-key 也需要在~/.ssh/config 配置

    分别输入对应密钥的密码,测试成功。
    记得在设置远程仓库地址的时候,修改对应的Host名称。建议把常用的git远程仓库设置为默认的密钥,生成默认密钥的命令如下:

    只要Host不在config文件中,都是读取默认密钥。

    ssh-keygen -t rsa -C "youremail@example.com"
    

    删除

    ssh-add -D
    

    一个托管平台多个ssh key

    配置

    # 用户1
    Host username1.github.com 
    Hostname github.com
    user git
    IdentityFile ~/.ssh/id_rsa.username1.github
    
    # 用户2
    Host username2.github.com 
    Hostname github.com
    user git
    IdentityFile ~/.ssh/id_rsa.username2.github
    

    使用

    注意下面的username1 和username2

    用户1

    # 举个 🌰
    git clone git@username1.github.com:username/example.git
    git remote set-url origin git@username1.github.com/username/example.git
    

    用户2

    # 举个 🌰
    git clone git@username2.github.com:username/example.git
    git remote set-url origin git@username2.github.com/username/example.git
    
    

    测试

    ssh-add -T git@username1.github.com
    ssh-add -T git@username2.github.com
    

    相关文章

      网友评论

          本文标题:管理多个SSH KEY

          本文链接:https://www.haomeiwen.com/subject/mkriiktx.html