关于git操作

查看本地是否已有SSH

  1. 在本地打开 git bash 命令行窗口,输入以下命令
    cd ~/.ssh

  2. 如果没有,显示
    bash: cd: /c/Users/Administrator/.ssh: No such file or directory

  3. 否则表示本地以创建 SSH key 了

    1
    2
    3
    cd ~/.ssh
    ls
    id_rsa id_rsa.pub known_hosts

创建 SSH key

  1. 最后一个参数替换为自己的 Gitee || Github 注册邮箱
    1
    2
    ssh-keygen -t rsa -C "your_email@example.com"
    Generating public/private rsa key pair.
  2. 接下来会提示输入生成的key存放的路径,不设置直接回车的话会默认创建在C:/Users/你的用户账号/.ssh文件夹下
    1
    2
    Enter file in which to save the key (/c/Users/Him/.ssh/id_rsa):
    Created directory '/c/Users/userpath/.ssh'.
  3. 再接下来会提示你输入密码,这个密码是用来每次提交的时候输入确认,可以不设置,直接回车两次
    1
    2
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
  4. 最后成功后会看到类似如下的输出,表示成功生成SSH key了,可以到C:/Users/你的用户账号/.ssh文件夹下查看
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Your identification has been saved in /c/Users/Him/.ssh/id_rsa.
    Your public key has been saved in /c/Users/Him/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:RwvBINgH8CEt2KniltmykeyDsOseUYcwMzehFeyT86s xxxxxx@qq.com
    The key's randomart image is:
    +---[RSA 2048]----+
    | o+%OO+o. |
    |..=+%*+ .. |
    | ..+o+o.. . |
    |o. o=. o . |
    |o oolalala S o |
    | +.+.. . . |
    |. .o . |
    | . . . |
    | . E. |
    +----[SHA256]-----+

SSH验证

  1. 验证本地生成的ssh,github或者gitee端密钥是否添加成功,输入如下命令

    1
    2
    ssh -T git@github.com
    ssh -T git@gitee.com
  2. 如果添加成功就会显示如下语句

    Hi Username! You’ve successfully authenticated, but GitHub does not provide shell access.
    Hi Username! You’ve successfully authenticated, but GITEE.COM does not provide shell access.

  3. Username:是你的在git端的名称


同一台电脑上多个github或gitee账户

同一台电脑有两个github账号或者两个gitee账号,配置如下都相同

  1. 请参考:gitee文档 配置文件如下
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    # gitee xxxxxx@qq.com 
    Host gitee.com
    HostName gitee.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/giteeqq_id_rsa

    # gitee xxxxxxx@189.cn
    Host xxxx.gitee.com #此处xxxx需要修改为你的gitee名称
    HostName gitee.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitee189_id_rsa

    # github aaaaa@189.cn
    Host aaaaa.github.com #此处aaaaa需要修改为你的github名称
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github189_id_rsa

    # github xxxx@qq.com
    #Host xxxx.github.com #此处xxxx需要修改为你的github名称
    #HostName github.com
    #PreferredAuthentications publickey
    #IdentityFile ~/.ssh/id_rsa
  2. 文件中有多个xxxaaaaa都是需要修改处,如果需要验证添加SSH是否成功,测试代码如下,对应上面配置文件
    1
    2
    3
    4
    ssh -T git@gitee.com
    ssh -T git@xxxx.gitee.com
    ssh -T git@aaaaa.github.com
    ssh -T git@xxxx.github.com
    依此类推有多少个gitee或github就配置多少个,特别注意 xxxx_id_rsa 不能配置为相同文件名。

git 问题

GitHub Desktop 使用ssh推送或者下拉时候报错 Authentication failed. Some common reasons include:

  1. 可以尝试关闭路径 File->Options->Advanced->SSH的选项->Use system OpenSSH 选项