本人在连接github时遇到了一些问题,通过询问ai得到了解决方案。现在将其中的有用部分提取出来分享。
连接 GitHub 和本地的 Git 的步骤如下:
-
在本地创建一个新的目录,并初始化为 Git 仓库:
mkdir new-repo cd new-repo git init
-
创建一个新的文件或者添加已有的文件到新的 Git 仓库:
echo "# My Project" >> README.md git add README.md
-
提交你的改动:
git commit -m "Initial commit"
-
在 GitHub 上创建一个新的仓库。不要在 GitHub 的新仓库中添加 README、.gitignore 或 License,这些可以在本地仓库中添加。
-
如果你是通过 HTTPS 方式连接 GitHub,那么你不需要 SSH 公钥,只需要输入你的 GitHub 用户名和密码即可。但是,如果你想通过 SSH 方式连接,那么你需要生成 SSH 公钥和私钥,并将公钥添加到你的 GitHub 账户。
以下是生成 SSH 公钥和私钥的步骤:
-
打开 Git Bash 或者终端。
-
输入以下命令生成新的 SSH 密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这里的邮箱应该是你的 GitHub 账户邮箱。
-
当系统要求你"Enter a file in which to save the key"时,直接按回车,接受默认文件位置。
-
如果系统要求你输入 passphrase,你可以选择输入也可以选择不输入,然后按回车。
现在,你在默认文件位置生成了 SSH 密钥对。
接下来,将 SSH 公钥添加到 GitHub 的步骤如下:
-
在终端中输入以下命令,复制 SSH 公钥:
clip < ~/.ssh/id_rsa.pub
这会将公钥复制到剪贴板。
-
登录你的 GitHub 账户,点击右上角的头像,然后点击 Settings。
-
在左侧菜单中点击 SSH and GPG keys。
-
点击 New SSH key。
-
在 Title 中输入这个 SSH key 的名字,然后在 Key 中粘贴你的公钥。
-
点击 Add SSH key。
现在,你已经将 SSH 公钥添加到了你的 GitHub 账户,你可以通过 SSH 方式连接你的 GitHub 仓库了。
-
-
将 GitHub 仓库的 URL 添加到本地仓库作为远程仓库:
git remote add origin <your-github-repo-url>
-
将本地的改动推送到 GitHub 仓库:
git push -u origin master
现在,你的本地 Git 仓库已经和 GitHub 仓库连接起来了。
问题1:
$ ssh -T git@github.com ssh: connect to host github.com port 22: Connection refused
解决1:
你遇到的问题可能是由于网络阻止了对端口 22 的访问,这是 SSH 默认使用的端口。GitHub 允许通过端口 443(HTTPS 默认端口)进行 SSH 连接,你可以尝试更改 SSH 配置以使用端口 443。
以下是如何更改 SSH 配置的步骤:
-
打开或创建 SSH 配置文件。在 Git Bash 或终端中输入以下命令:
notepad ~/.ssh/config 如果没有该文件请新建一个,没有后缀名
-
在打开的配置文件中,添加以下内容:
Host github.com Hostname ssh.github.com Port 443
-
保存并关闭配置文件。
现在,当你尝试连接 GitHub 时,SSH 会使用端口 443 而不是默认的端口 22。你可以再次尝试运行 ssh -T git@github.com
,看看是否能成功连接。
问题2:
$ ssh -T git@github.com The authenticity of host '[ssh.github.com]:443 ([20.205.243.160]:443)' can't be established. ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU. This key is not known by any other names.
解决2:
这个消息是 SSH 第一次连接到一个新的远程主机时的正常行为。SSH 会询问你是否信任这个新的主机,并将其添加到已知主机列表中。
你可以输入 yes
然后按回车。这将把新的主机添加到你的已知主机列表中,下次连接时就不会再出现这个提示了。
请注意,你应该只在你确信你正在连接到正确的主机时这样做。在这种情况下,你正在连接到 ssh.github.com
,这是 GitHub 的 SSH 服务器,所以你可以安全地输入 yes
。