配置SSH连接Git教程 /TortoiseGit SSH配置
2 检查现有的 ssh 密钥
Windows 打开 GitBash,Linux 下打开终端,输入:
$ ls -al ~/.ssh |
如果你看到以下输出,那么说明你已经有 ssh 密钥(以 .pub 结尾的文件):
$ ls -al ~/.ssh | |
total 26 | |
drwxr-xr-x 1 197121 0 Mar 31 22:29 ./ | |
drwxr-xr-x 1 197121 0 Apr 16 23:36 ../ | |
-rw-r--r-- 1 197121 2610 Mar 31 22:27 id_rsa | |
-rw-r--r-- 1 197121 573 Mar 31 22:27 id_rsa.pub | |
-rw-r--r-- 1 197121 831 Apr 1 12:08 known_hosts | |
-rw-r--r-- 1 197121 92 Mar 31 22:26 known_hosts.old |
如果你不想用原来的密钥或者没有密钥的话也不用着急,看下一步如何生成新的 ssh 密钥。
3 创建新的 ssh 密钥
3.1 生成新的 ssh 密钥
在 Windows 的 GitBash 或 Linux 终端输入:
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" | |
# 你可以把引号里的替换为你自己的邮箱,不换的话问题不大 |
然后终端会让你输入一些东西,可以不用输入直接一路回车,看到:
Generating public/private rsa key pair. | |
Enter file in which to save the key (/root/.ssh/id_rsa): | |
Enter passphrase (empty for no passphrase): | |
Enter same passphrase again: | |
Your identification has been saved in /root/.ssh/id_rsa | |
Your public key has been saved in /root/.ssh/id_rsa.pub | |
The key fingerprint is: | |
SHA256:t3925EJgD4kcUp69dBv/nqkM85n0I5mFRW4BlZwaVeo your_email@example.com | |
The key's randomart image is: | |
+---[RSA 4096]----+ | |
| .=o=| | |
| . . B | | |
| o + * .| | |
| . * =oo+ | | |
| So.B +A+ | | |
| .o.B.o.o| | |
| .o o+o.| | |
| .*+B.*| | |
| .OoBo| | |
+----[SHA256]-----+ |
代表密钥生成成功。
3.2 将SSH密钥添加到ssh-agent
3.2.1 确保 ssh 正在运行
终端输入:
$ eval | |
$ ssh-agent -s |
看到如下输出:
SSH_AUTH_SOCK=/tmp/ssh-xkZRdf3bu6fW/agent.1075848; export SSH_AUTH_SOCK; | |
SSH_AGENT_PID=1075849; export SSH_AGENT_PID; | |
echo Agent pid 1075849; |
代表 ssh 正常运行。
3.3.3 添加 ssh 到账户
执行以下两条命令:
$ ssh-agent bash | |
$ ssh-add ~/.ssh/id_rsa # 这里如果文件名被改过要写你自己定义的文件名 |
看到输出:
Identity added: id_rsa (your_email@example.com) |
添加成功!
4 将密钥添加到 github 账户
4.1 复制你的公钥
在终端使用:
$ cat ~/.ssh/id_rsa.pub |
看到:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDJ6c4cXmpyJr/anagkKz4K+RCFYSJlkFvdNY6JBmKeomrQYfChpDZFxjUkj72XfSAhGyJjPcn4pTHHLCHOS2jzstrvE0Cq19p/mbbvwsq5GGqmzsTYqOeqpTIeEKnXlv/PXkh/mXJVOWhui8esIQk4bU1Ss2wIEVMSRI+9n8RgyBcpbiq4m/SDrUy1HJNHO3pyjcf7k6XUjfxeTRWMVtj7IH3yQbgrZQo90VHsVhkmTeyvaCv8tJLi/j+t9E1/kOWPbpTFTmaAe190SuPVwpQjyRH/Z8UWVdCYxgeZ9l9JN3MTyHfRWz6FuDJdoQze94mU1NwEP8AftHNVTsMT2qvbAYK3Mcr6/j1R1vAeq4mbgn1dp79RGW0cKOSx336WuFsfebMV7QLZ1RnW5xF6VgghMd4x9Hk8kmLL6s8I7ZfbjNCgyAhL9d5N01lsz8hdMv1BHzaZp+yk0EXUy8fxFvaSYaUpQuKb8eL6DesBJJ8FH4GVb6+V7J7OsXhG8QiKdDsDbfGDJs/Aq0Ew14cuHlD9y/1A44b+Kt6WwmcISGG85SM+YUcPuay8gEFzNQ/Tzgw4bJznw0RHHVuvtpmjvlBUxXRTSICvrrAJ19/yXoHcZtiPncpDHVnyIy6IVAg23MCeUbrIPIPKQXVHG/5ouRk0YbkFbl6kSq/Yurb35N7tDQ== your_email@example.com |
全给复制下来!
4.2 将公钥添加到 github 账户
然后去 gihub:
- 右上角下拉面板选择 Settings;
- 左侧选择 SSH and GPG keys;
- 点击 New SSH key;
- 随便起一个 title;
- 把公钥粘贴到下面。
可能会输入密码,添加完成!
5 测试 ssh 连接
在终端中输入:
$ ssh -T git@github.com |
可能看到如下警告:
The authenticity of host 'github.com (20.205.243.166)' can't be established. | |
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM. | |
Are you sure you want to continue connecting (yes/no/[fingerprint])? |
输入 yes:
Warning: Permanently added 'github.com,20.205.243.166' (ECDSA) to the list of known hosts. | |
Hi xxxxxx You've successfully authenticated, but GitHub does not provide shell access. |
如果 xxxxxx 是你的 github 用户名,说明成功。
6 配置 git 使用 ssh 密钥登录
首先将你的仓库 clone 下来到一个位置。然后进入你的仓库。
6.1 检查当前的 remote url
在仓库下输入:
$ git remote -v |
看到输出:
origin https://xxxxx.git (fetch) | |
origin https://xxxxx.git (push) |
说明当前使用的还是 https 协议,如果以 git 开头表示 git 协议。
6.2 修改 remote url 为 git 协议
上 github 仓库,点 Code,选择 SSH,复制链接:
在终端输入:
$ git remote set-url origin git@github.com:xxxxx.git |
再检查 git 协议:
$ git remote -v |
出现:
origin git@xxxxx.git (fetch) | |
origin git@xxxxx.git (push) |
成功!
TortoiseGit SSH配置
1. SSH客户端
首先安装好了TortoiseGit,简单在设置里的网络设置一下SSH客户端
默认在安装目录下的bin文件夹下
我在gitee建了一个测试仓库test-tortoise-git-ssh
注意URL要写成SSH的
2.生成RSA公私钥
如果没有密钥,那就点击生成一个,注意鼠标要不停移动产生随机序列
然后分别保存公钥(貌似用不上)和私钥文件
然后复制SSH公钥序列增加到gitee上面
3. 可以使用和git相同的密钥
如果本地早存在有git bash的密钥,可以导入直接使用,一般在C:\Users\ycm\.ssh目录下
当然也有其他方式,比如TortoiseGit的SSH客户端设置使用git的SSH的客户端(OPENSSH),则会自动使用跟命令行一样的密钥配置,这里不多讨论。
4. 配置TortoiseGit客户端的密钥
4.1 配置 putty上的密钥(个人理解是全局的密钥)
到这里就已经可以进行推送了
4.2 设置个别仓库密钥
如果不想进行全局putty的密钥设置,也可以单独设置仓库的密钥
右键进入对选中仓库的设置
选中之前保存的密钥文件
然后进行提交推送,也能成功
文件来源: TortoiseGit配置SSH密钥(或者使用和git相同的密钥)_tortoisegit 的ssh客户端-CSDN博客
配置SSH连接Git教程 - Only(AR) - 博客园 (cnblogs.com)