📜  git 使用 ssh - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:41:28.376000             🧑  作者: Mango

Git使用SSH

Git是一个分布式版本控制系统,它可以帮助开发人员协作、追踪版本和管理代码。SSH是一种用于安全远程连接的协议,Git可以通过SSH来进行安全的远程操作。

为什么要使用SSH

使用SSH进行操作的主要目的就是为了安全。SSH使用加密技术来保护通信数据,防止黑客攻击、监听和截获你的密码等敏感信息,从而保护你的代码和项目安全。

如何使用SSH
生成SSH密钥

在使用SSH之前,你需要生成一对SSH密钥:公钥和私钥。公钥存放在远程服务器上,私钥存放在本地计算机上。在Git中,通过SSH连接远程仓库时,Git会使用私钥来对请求进行签名,并且在服务器上验证请求的签名。

你可以通过以下命令在本地计算机上生成一对SSH密钥:

ssh-keygen -t rsa -b 4096 -C "你的邮箱"

这个命令会生成一对RSA密钥,长度为4096位,并且将公钥保存在~/.ssh/id_rsa.pub文件中。

将公钥添加到远程服务器

将公钥添加到远程服务器中,可以通过两种方式:手动添加或使用Git提供的命令。

手动添加

将你的公钥复制到远程服务器的authorized_keys文件中。如果这个文件不存在,可以通过以下命令新建它:

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

然后将你的公钥添加到authorized_keys文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

使用Git提供的命令

Git提供了一个命令来自动添加公钥到远程服务器上:

ssh-copy-id username@remote_host

这个命令会将你的公钥复制到指定的远程服务器上,并且自动创建authorized_keys文件。

配置Git使用SSH

在本地计算机上,需要将Git配置为使用SSH,这可以通过以下命令完成:

git config --global core.sshCommand "ssh -i ~/.ssh/id_rsa"

这个命令会告诉Git使用~/.ssh/id_rsa作为默认的SSH密钥文件。

测试SSH连接

一切设置完成后,你可以通过以下命令来测试SSH连接:

ssh -T git@github.com

如果一切正常,你应该能够看到以下输出:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.
使用SSH克隆仓库

现在你已经设置好了SSH连接,可以通过以下命令使用SSH克隆你的仓库:

git clone git@github.com:username/repo.git
总结

使用SSH连接Git仓库提供了更高的安全性,防止黑客攻击和窃取敏感信息。在使用SSH之前,需要生成一对SSH密钥,将公钥添加到远程服务器中,并将Git配置为使用SSH。最后,通过测试SSH连接和使用SSH克隆仓库来确保一切设置正确。