github 的登录问题

作者: , 共 1868 字 , 共阅读 0

github 自从废除用户名密码直接登录之后,就乱了很多。直接用户名密码会提示:

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.fatal: Authentication failed for 'https://github.com/lvyekids/lvye-scouts-mini/'

现在提供 3 种登录方式。以下是 ubuntu 的操作方式。

1、SSH 登录

1、这种模式需要设置库为 git@github.com 的格式:

git remote set-url origin git@github.com:user/repo.git

2、复制 SSH 公钥

执行下述命令(如果~/.ssh下有其它.pub文件应该也是可以的):

more ~/.ssh/id_ed25519.pub

然后复制文件内容。

如果该文件不存在,使用下述命令生成一个(邮箱为你的 github 的登录邮箱,查看地址: github.com -> 用户头像 -> Settings -> Emails ):

ssh-keygen -t ed25519 -C 'your@email.com'

生成后再执行上面复制公钥动作

3、将公钥粘贴到 github 的设置中

打开 github.com -> 用户头像 -> Settings -> SSH and GPG Keys -> New SSH Key ,将上面复制的 SSH 公钥粘贴到 Key 框里,再起一个名字,建议为该电脑的名字。

注意,该设置只对该电脑有效。如果换一台电脑需要重复上述操作。也有一个方法就是将~/.ssh下的id_ed25519id_ed25519.pub两个文件都复制到新的电脑的同样位置。

2、token 登录

3、gcm 登录

gcm 是 git credential manager 的简称,用来管理 git 的登录信息。它本质上是一个密码管理器,在第一次输入 github 的用户名密码之后,后面每次都只需要输入 gpg 的管理密码:

1、下载、安装和配置 gcm :

wget https://github.com/GitCredentialManager/git-credential-manager/releases/download/v2.0.785/gcm-linux_amd64.2.0.785.deb 
sudo dpkg -i gcm-linux_amd64.2.0.785.deb
git-credential-manager-core configure

上面的下载和安装文件里的版本号 2.0.785 可能随着时间更新。最新版本参考https://github.com/GitCredentialManager/git-credential-manager/releases/

2、生成 gpg 和本地密码库

下面这一步会生成本地 gpg 密钥对,会提示你输入姓名(该姓名会后面用于用户名),其它的按照提示操作即可。还会提示你输入管理密码,这个管理密码要记住,以后每次需要登录信息时,可能会被要求输入管理密码:

gpg -gen-key
sudo apt install pass
pass init {your_username}

3、配置 gcm

其中export GPG_TTY=$(tty)只对当前终端有效,因此需要放到你的~/.bashrc~/.zshrc里。

export GPG_TTY=$(tty)
git config --global credential.credentialStore gpg

然后就可以进行 git 操作了,第一次操作会询问 git 的用户名密码。后面就不需要了,但可能会被要求提供 gpg 的管理密码。

Q. E. D.

类似文章:
相似度: 0.151
IT » GIT, proxy
大部分设置都是通过git config命令实现的:
IT » windows terminal
当用 windows terminal 登录 SSH 服务器后:
IT » WSL, SSH
世界上最好的 Linux 发行版 Bash on Windows 已经升级到了 Ubuntu 18.04 ,并且提供越来越多的功能。下面是笔记,记录如何启动子系统的 SSHD 服务并设置开机自动启动,也顺带开机自动启动了子系统。
IT » WSL, win10, windows terminal
WSL 是指 windows subsystem for linux ,在 win10 被引入,为用户提供 Linux 命令行和编程环境。
IT » ubuntu, 网络代理
下面命令设置环境变量http_proxyhttps_proxyhttp://127.0.0.1:7890,分别用于访问非加密和加密网址。目前大部分网址都是加密网址。
IT » git
分支是一条线,随着开发进度一直往前推进,可以分叉、合并等。
安装 selenium ,使用 requestium 来调用 selenium 程序更为简单,因此可一起安装:
IT » windows terminal, SSH
微软放出了 windows terminal 的正式版,它不光是 windows 自带的命令行终端,也可以用来替代 mobaterm 之类的 SSH 客户端。下面是其设置的一些笔记。
相似度: 0.074
IT » GIT
GIT 的一个很大的问题是没有权限划分,所有人对项目下所有东西都有(查看)权限(只能设置分支的推送权限),无法对特定文件和文件夹设置单独的权限。这个功能只能借用 SUBMODULE 来实现。
去亓莲关长城无果,然后准备去走神堂峪栈道。结果栈道这边没有停车位,并且被车流裹持,直接开到雁栖湖了。最后大家分散在路边停上车,刚好有老乡说旁边山上有无主的板栗园,然后我们就上去摘板栗。结果摘了 3 小时的板栗。
IT » git
如果还没有执行git add,此时被认为尚未暂存以备提交的变更,git status结果如下: