下载代码的两种方式ssh 和 https

本文介绍了使用SSH和HTTPS两种方式向远程代码仓库提交代码的不同之处。SSH利用非对称加密确保安全性,需要生成并配置公私钥;而HTTPS则通过账号密码验证,文中还详细说明了如何设置HTTPS方式提交代码时免密操作的方法。

在远程代码仓库上面下载代码的时候,我们有两种方式:

一个是ssh,一个是https

这两种方式在push 代码的时候是有不同的,最主要在于他们两者的安全机制不同

ssh :采用rsa的非对称加密的方式,我们本地保存一份私钥,然后将对应的公钥放到对应的自己的账户里面
https:则是通过普通的账号来进行登录,因此如果采用http的方式,则会每次都要求输入密码

下面我们分别介绍下这两种代码下载方式,以及介绍下https方式下不用每次输入密码的方式:

一、ssh 的方式

在进行push前,我们本机是需要创建对应的公钥和私钥的

1. 查看公私钥

在终端输入:

cd /.ssh c d   / . s s h ls -l

查看下是否有 id_rsa 和id_rsa.pub 两个文件,其中id_rsa是私钥,id_rsa.pub是公钥,如果本地已经有自定义的id_rsa和对应的id_rsa.pub也是可以的

2. 创建公私钥

如果不存在对应的私钥和公钥文件,那么我们可以创建一个,存在,则跳过

$ ssh-keygen -t rsa -C “your_email@example.com”

参数:

-t (type)采用的算法
-C (Comment) 新的注释
-f (file) 文件名

用如上的这种方式可以创建一个对应账号的公钥和私钥
运行以上命令,会出现如下:

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/zhouzhenyong/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

文件名和密码都可以不用输入,直接回车,这样可以生成默认的公钥和私钥文件,如果我们想在一台电脑上共存多个公私钥用于不同的账号域,那么可以用输入对应的公私钥文件名:
比如:

Enter file in which to save the key (/Users/zhouzhenyong/.ssh/id_rsa): second

这样就会生成:私钥 second 和公钥second.pub

注意:
1.需要自行添加私钥

如果使用自定义的文件名,那么默认情况下系统是不会识别公私钥的这个文件名的,需要添加进去,执行

$ ssh-add yourFile

例如如上文件:

ssh-add second

查看已经自定义的公私钥文件名(默认的不显示)

$ ssh-add -l

2.电脑重启私钥绑定消失(个人遇到的)

电脑重启,那么ssh-add 的私钥就会失效,需要手动重新添加一次

3.将公钥放到对应的仓库账户中

这一步我们将对应的公钥内容放到对应的仓库账户中,我们可以打开文件拷贝,也可以用命令进行拷贝公钥数据,在不同的系统中,这个命令是不同的
mac下:

pbcopy < ~/.ssh/id_rsa.pub

linux 下:

xsel < ~/.ssh/id_rsa.pub

windows 下:

clip < ~/.ssh/id_ras.pub

二、https 的方式

采用https 的提交代码,每次push代码都需要输入用户名和密码,我们这里主要介绍下,如何让https这种方式不用每次提交都需要输入用户名和密码
这里有两种方式:

1.显示的在url上面添加上用户名和密码

http://xxxxx/xxxx.Git 修改为:http://username:password@xxxxx/xxxx.git

也就是在//后面添加username:password@
如果采用sourceTree,则修改如下,但是这里有安全风险,请谨慎选择
这里写图片描述
这里写图片描述

2.git上面使用凭据帮手

第一种方式有密码泄露风险,我们可以采用下面这种方式
执行如下命令即可

git config –global credential.helper osxkeychain

后面Push的时候,会弹出如下的显示框
这里写图片描述

点击“始终允许”,以后每次提交代码就不需要输入密码了

在 IntelliJ IDEA 中克隆 Git 仓库时,可以选择使用 HTTPSSSH 两种方式。这两种方式在安全性、认证机制操作流程上存在显著差异。 ### HTTPS 方式 HTTPS 是一种基于 HTTP 协议的加密通信方式,通过 SSL/TLS 提供安全的数据传输。在使用 HTTPS 克隆仓库时,每次与远程仓库进行交互(如拉取或推送代码)都需要输入用户名密码[^3]。 **优点:** - 更适合公司或组织内部网络环境。 - 不需要预先配置密钥对,适合临时用户或访客。 **缺点:** - 每次提交都需要手动输入账号密码,较为繁琐。 - 在某些情况下,GitHub 等平台要求使用 Personal Access Token (PAT) 替代明文密码进行身份验证[^3]。 **操作步骤:** 1. 打开 IntelliJ IDEA,进入 **Get from Version Control**。 2. 输入 HTTPS 地址(例如 `https://github.com/username/repository.git`)。 3. 点击 **Clone**。 4. 首次操作时,会提示输入 GitHub 账号密码(或 PAT),填写后即可开始克隆过程[^3]。 ### SSH 方式 SSH 是一种安全的远程登录协议,也可用于 Git 的通信。使用 SSH 进行 Git 操作前,需要生成一对密钥(公钥私钥),并将公钥添加到 Git 托管平台(如 GitHub、GitLab)中。这种方式无需每次操作都输入密码,更加便捷且安全。 **优点:** - 一次配置,永久免密登录。 - 更高的安全性,因为密钥对通常具有更强的加密强度。 **缺点:** - 初次配置较为复杂,需要生成密钥并上传公钥至 Git 平台。 - 若私钥丢失或泄露,可能导致安全风险。 **操作步骤:** 1. **生成 SSH 密钥对**: - 打开命令行工具(如 Git Bash 或 Windows Terminal)。 - 执行以下命令生成密钥(邮箱替换为你的 GitHub 注册邮箱): ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` - 按照提示完成密钥生成,默认路径为 `~/.ssh/id_rsa` `~/.ssh/id_rsa.pub`。 2. **添加公钥至 GitHub**: - 打开 `~/.ssh/id_rsa.pub` 文件,复制其中的内容。 - 登录 GitHub,进入 **Settings > SSH and GPG keys > New SSH key**。 - 将公钥粘贴进去,并保存。 3. **测试 SSH 连接**: - 在命令行中执行: ```bash ssh -T git@github.com ``` - 如果显示欢迎信息,则表示配置成功。 4. **在 IntelliJ IDEA 中克隆仓库**: - 打开 IntelliJ IDEA,进入 **Get from Version Control**。 - 输入 SSH 地址(例如 `git@github.com:username/repository.git`)。 - 点击 **Clone**,IDEA 会自动识别并使用本地 SSH 配置进行连接。 ### 总结 | 特性 | HTTPS | SSH | |--------------|----------------------------------|----------------------------------| | 安全性 | 基于 SSL/TLS 加密 | 使用密钥对,更安全 | | 认证方式 | 每次都需要输入用户名密码(或 PAT) | 首次配置后免密 | | 配置复杂度 | 简单 | 较复杂 | | 适用场景 | 内部网络或临时用户 | 长期开发者或团队协作 | 选择哪种方式取决于具体的需求环境。如果希望简化日常操作,推荐使用 SSH;若处于受限环境中,HTTPS 可能更为合适。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值