报错:
svelte-remote-load Cloning into 'svelte-remote-load'... fatal: unable to access 'https://github.com/sj1-cn/svelte-remote-load/': Failed to connect to github.com port 443 after 17149 ms: Couldn't connect to server chengling-wudeMacBook-Pro:~ chengling-wu$ git clone git@github.com:sj1-cn/svelte-remote-load.git Cloning into 'svelte-remote-load'... git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.
原因如下:从 2021 年 8 月 13 日开始,GitHub 不再接受账号密码作为 Git 操作的认证方式。这意味着,当你尝试使用 git
命令(如 git clone
、git push
等)与 GitHub 交互时,不能使用账号密码进行认证。
取而代之的是,你需要使用个人访问令牌(Personal Access Token,PAT)或 SSH 密钥进行认证。你可以在 GitHub 的设置中生成一个 PAT,然后在进行 Git 操作时使用它作为密码。或者,你可以在你的机器上生成一个 SSH 密钥,然后将公钥添加到你的 GitHub 账号中。
此处只介绍下ssh验证方式。
解决:添加sshkey
具体的步骤如下:
1.首先,你需要在你的本地机器上生成一个新的 SSH 密钥。你可以在终端中运行以下命令来生成一个新的 SSH 密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
上述命令中的-t rsa指定了生成的密钥类型是rsa,-b 4096指定了生成密钥的长度,
后面的-C "your_email@example.com"是为了添加一个用于区分账户的注释,帮助你记住这个密钥是哪个账户生成的。
这个命令会提示你输入一个文件路径来保存你的新的 SSH 密钥,你可以直接按回车键来接受默认的文件路径。这个命令会生成一个ssh公钥(.pub文件)和ssh私钥,交给外部的都是公钥文件,私钥自己保存。
2. 将私钥添加到ssh-agent
ssh-add ~/.ssh/id_rsa
这个是默认的文件路径,如果你开始的时候更改了这个文件路径的话,则需要使用你更改之后的文件路径。
3.复制公钥
pbcopy < ~/.ssh/id_rsa.pub
和第二步的代码一样,这里的路径是默认的路径,如果第一步改变了路径,此处就要使用改变之后的路径。
也可以直接通过cat命令打开该文件再进行复制。
4.粘贴到你的github账户
首先登陆你的github账户,再点击右上角的头像,选择“Settings",在左侧的菜单中,选择"SSH and GPG keys",然后点击"New SSH key"。在 "Key" 字段中,粘贴你的 SSH 公钥,然后点击 "Add SSH key"。
下面是我添加成功的界面:
- 关于ssh是否成功连接,可以使用
ssh -T git@github.com
出现successfully authenticated说明已经连接成功。
5.最后运行克隆指令就可以成功克隆到本地了。
具体运行克隆指令如下:
从你需要clone的git仓库复制ssh URL,再使用git clone URL指令即可。
git clone git@github.com:username/repository.git