首页 > 其他分享 >GitHub SSH 快速配置

GitHub SSH 快速配置

时间:2024-05-23 14:18:01浏览次数:12  
标签:脚本 GitHub 配置 echo 公钥 ssh SSH

每次更换系统或者电脑时,都需要重新配置一番 Github SSH 的验证,记性不太好,写了一个快速部署的辅助脚本,直接安装脚本提示使用即可,经测试,Linux 和 Windows 下均能使用。

脚本功能

  1. 设置 Git 用户名和邮箱
    脚本会提示用户输入 Git 用户名和邮箱,并将其设置为全局配置。

  2. 生成新的 SSH 密钥
    脚本会自动生成新的 SSH 密钥对(私钥和公钥),用于与 GitHub 建立安全连接。在生成过程中,用户可以持续按回车键使用默认设置。

  3. 将 SSH 私钥添加到 ssh-agent
    脚本会自动将生成的 SSH 私钥添加到 ssh-agent 中,以便在后续推送或拉取代码时无需每次手动输入密钥。

  4. 将 SSH 公钥复制到剪贴板(可选)
    如果用户的系统安装了 xclip 工具,脚本会尝试自动将 SSH 公钥内容复制到剪贴板,方便用户在 GitHub 上配置。如果系统未安装 xclip,脚本会输出公钥内容,提示用户手动复制。

  5. 提供 GitHub 配置指引
    脚本会给出在 GitHub 上添加 SSH 公钥的详细步骤,引导用户完成配置。

  6. 测试 SSH 连接
    最后,脚本会尝试通过 SSH 连接到 GitHub,验证配置是否成功。如果连接成功,将输出相应的提示信息。

使用方式

  1. 确保您的系统已安装 Git 和 SSH 相关工具。
  2. 下载或复制该脚本代码,保存为一个 .sh 文件,例如 github_ssh.sh
#!/bin/bash

echo "本脚本用于快速配置Git SSH连接。"

# 设置GitHub的user name和email
echo "请输入您的Git用户名:"
read git_username
git config --global user.name "$git_username"

echo "请输入您的Git邮箱:"
read git_email
git config --global user.email "$git_email"

# 生成一个新的SSH密钥
echo ""
echo "生成新的SSH密钥..."
echo "接下来的输入中,你可以持续的回车"
ssh-keygen -t rsa -C "$git_email"

# 获取SSH密钥文件路径
ssh_key_path=$(echo ~)/.ssh/id_rsa

# 将SSH私钥添加到 ssh-agent
echo ""
echo "将SSH私钥添加到ssh-agent..."
eval "$(ssh-agent -s)"
ssh-add "$ssh_key_path"

# 将SSH公钥添加到GitHub账户
echo ""
echo "将SSH公钥添加到GitHub账户..."
ssh_key_pub=$(echo ~)/.ssh/id_rsa.pub
if command -v xclip >/dev/null; then
    echo "复制SSH公钥内容到剪贴板..."
    xclip -selection clipboard < "$ssh_key_pub"
else
    echo "无法自动复制SSH公钥,请手动复制以下内容:"
    cat "$ssh_key_pub"
fi

echo ""
echo "请在 Github 页面进行配置"
echo "1.请登录GitHub,点击头像,然后在 Settings 页面点击左侧 SSH and GPG keys,随后请点击右上角绿色的 New SSH key。"
echo "2.在Title输入框内,为您的新key取个名字,在Key输入框内,粘贴前面复制好的公钥内容,您无需修改 Key type 下拉框,直接点击 Add SSH key 按钮即可。"
echo "完成后按任意键继续..."
read -n 1 -s

# 测试连接
echo ""
echo "测试SSH连接..."
echo "如果提示你需要继续连接,请输入yes!"

ssh -T [email protected]

echo ""
echo "如果提示中的用户名是您的,说明SSH key已经配置成功。"
  1. 在终端中,使用 chmod 命令为脚本添加执行权限(windows直接下一步):
chmod +x github_ssh.sh
  1. 执行脚本:
./setup_git_ssh.sh

# windows 下
# 直接在 sh 脚本所在目录右键点击 Open Git Bash Here
# 终端输入 bash ./github_ssh.sh
  1. 根据脚本提示输入相关信息,并按照指引在 GitHub 上完成配置。
  2. 配置完成后,您可以使用 SSH 连接克隆或推送代码到 GitHub 远程仓库。

通过使用该脚本,您可以快速完成 Git SSH 连接的配置,无需手动执行繁琐的步骤,从而提高效率和便利性。该脚本适合初学者或希望快速配置 Git SSH 连接的用户使用。

标签:脚本,GitHub,配置,echo,公钥,ssh,SSH
From: https://www.cnblogs.com/gupingan/p/18208386

相关文章

  • 主流源代码管理工具GitHub介绍
    GitHub在软件开发领域,源代码管理工具的重要性不言而喻。它们不仅帮助开发者跟踪代码变更,还促进了团队协作,使得项目管理和版本控制变得更加高效。在众多源代码管理工具中,GitHub以其独特的优势,成为了众多开发者和团队的首选。1.引言源代码管理工具是软件开发中不可或缺的一部分......
  • 帆软——目录及权限配置
    1.登录报表平台管理 2.打开后,需要自己注册下账户,然后登录登录后,我们可以看到很多的目录,这些都是帆软自带的,可以自己编辑 3.进入系统管理添加目录和模版,   4.在用户管理和权限管理中配置对应的用户和菜单权限。 ......
  • nacos启动异常和动态配置未生效
    最近打算研究一下nacos动态配置的原理,于是开始照着Nacos官网快速入门。但是发现在和SpringBoot以及SpringCloud适配启动的时候,总是报错无法启动,于是深入排查了一下并作以记录。1.nacos和SpringBoot启动报错Invaliddefault:publicabstractcom.alibaba.nacos.api.config.Con......
  • VMware Vsphere 配置多写入器以及启用CBT错误解决
    VMwareVsphere配置多写入器以及启用CBT错误解决为满足OracleRac需求,需要在VMware上配置共享磁盘同时给两台rac虚拟机使用,以下为配置过程:1.两台虚拟机同时新增一个SCSI控制器,默认选项即可,如下图所示。在A虚拟机新增一块硬盘硬盘:类型:一定要选择厚置共享类型:多写入器......
  • Nacos的配置管理
    为什么需要配置管理?在单体应用中,配置管理可能不是什么大的事情,通常会以配置文件的方式。常见的方法比如将配置通过打包脚本打入应用包中,或者直接放到运行应用的服务器的特定目录下,或者存储到数据库中。这种方式在传统的单体应用中简单有效,但是也会有些比较棘手的问题,比如:配置......
  • C#应用的用户配置窗体方案 - 开源研究系列文章
          这次继续整理以前的代码。本着软件模块化的原理,这次笔者对软件中的用户配置窗体进行剥离出来,单独的放在一个Dll类库里进行操作,这样在其它应用程序里也能够快速的复用该类库,达到了快速开发软件的效果。      笔者其它模块化应用的例子:      C#的关于......
  • [oeasy]python018_ 如何下载github仓库_git_clone_下载仓库
    继续运行......
  • Windows中实现将bat或exe文件作为服务_且实现命令行安装、配置、启动、删除服务
    一、背景描述在Windows环境下进行日常的项目开发过程中,有时候需要将bat文件或exe文件程序注册为Windows的服务实现开机自己运行(没有用户登陆,服务在开机后也可以照常运行)、且对于那些没有用户交互界面的exe程序来说只要在后台运行即可,无需在桌面显示该exe程序窗口内容、无......
  • Ubuntu 22.04.4 深度学习环境配置
    显卡为NVIDIA4090D 显卡驱动安装成功后,输入以下命令,查看驱动支持最高的CUDA版本。nvidia-smi一、CUDA安装(1)官网下载对应CUDA(NvidiaCUDADownload / CUDAToolkitArchive|NVIDIADeveloper)以CUDA11.8为例(师兄用12.2也未冲突)  (2)驱动安装开网上推荐安装runfil......
  • 源代码管理工具——GitHub的介绍和使用
    源代码管理工具——GitHub的介绍和使用在软件开发的世界里,源代码管理(SCM)是实现项目顺利进行的基石之一。它涉及的不仅仅是代码的版本控制,还包括了项目协作、文档管理、构建自动化等多个方面。本博客将深入探讨在SCM工具中的佼佼者——GitHub,从其基本介绍、重要功能、使用场景......