• 一台电脑如何管理多个ssh key


    需求:一台电脑上(Mac os)管理多个ssh key,可以任意切换,达到多用户(账号)使用不同ssh提交代码。

    以下利用bitbucketgithub账号来做例子。

    一、生成ssh key

    1.1 生成密钥(必须)

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

    注解:

    • 密钥类型可以用 -t 选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥。这里使用的是rsa
    • 同时在密钥中有一个注释字段,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行
    • 若一路回车(密码可以不写),这样只会在~/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub 两个文件

    1.2 设置路径 (可选)

    为了区分,我们在第一个回车后设置路径,进行第二步

    id_rsa_bitbucket
    id_rsa_bitbucket.pub
    
    id_rsa_github
    id_rsa_github.pub
    

    1.3 指定密语字符串(可选)

    • 输入完毕后程序同时要求输入一个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口令。3次回车即可完成当前步骤,此时~/.ssh目录下文件已经生成好了。
    • 建议输一个,安全一点,当然不输也行,应该不会有人闲的无聊冒充你去修改你的代码


    完了之后,大概是这样:

    到此为止,你本地的密钥对就生成了。

    二、设置ssh key的代理

    2.1、 首先查看代理

    ssh-add -l
    

    若提示

    Could not open a connection to your authentication agent.
    

    则系统代理里没有任何key,执行如下操作

    exec ssh-agent bash
    

    若系统已经有ssh-key 代理 ,可以删除

    ssh-add -D
    

    2.2、 添加私钥

    ssh-add ~/.ssh/id_rsa_bitbucket
    ssh-add ~/.ssh/id_rsa_github
    

    三、添加公钥

    在对应的github的ssh管理页面,添加对应的公钥(.pub 文件内容),保存到代码管理服务器。

    四、添加和编辑配置文件config

    ~/.ssh 目录下新建一个config文件

    touch ~/.ssh/config
    

    添加内容

    # git@bitbucket.org
    Host bitbucket.org
    HostName bitbucket.org
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github/id_rsa_bitbucket
    
    # git@github.com
    Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_github
    

    当然也可以利用nano命令来创建和编辑

    nano ~/.ssh/config
    

    如此,ssh就会根据登陆的不同域,来读取对应的私钥文件

    五、测试

    ssh -T HostName

    ssh -T git@github.com
    

    若出现

    Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.
    

    则表示成功。

    若出现

    permission denied (publickey)
    

    请检查github的ssh管理里添加的公钥是否正确。

    六 为不同项目设置不同的git账号

    设置了全局的git用户,所有的git项目都会使用这个用户名和邮箱,如下设置的:

    git config --global user.name 'Username'
    git config --global user.email 'UserEmail'
    

    如果你在另一个项目中想使用另一个git账号,就要为当前项目设置指定的账号和邮箱,在当前项目中设置如下命令:

    git config user.name 'AnotherName'
    git config user.email 'AnotherEmail'
    

    使用git config --list 就可以看到全局的git配置和当前项目的git配置了

  • 相关阅读:
    [java初探06]__排序算法的简单认识
    [java初探05]__数组的简单认识及Arrays类的常用方法
    [java工具类01]__构建格式化输出日期和时间的工具类
    [Java初探04]__字符串(String类)相关
    [Java初探实例篇02]__流程控制语句知识相关的实例练习
    【Java初探03】——流程控制语句
    iOS ipv6 被拒
    iOS工程中如何去掉第三方的警告
    iOS面试准备之思维导图(转)
    UML图基本类型
  • 原文地址:https://www.cnblogs.com/qiqi715/p/10176836.html
Copyright © 2020-2023  润新知