原文:https://ichochy.com/posts/blog/20221107.html


通过密码连接GitHub总是要输入密码,麻烦,现在使用 SSH key 可以轻松实现免密验证.

创建 SSH key

使用 ssh-keygen 命令

  • 打开终端输入命令 ssh-keygen 创建 key
ssh-keygen -t ed25519 -C "ichochy@outlook.com" 

注意:将ichochy@outlook.com换成自己的邮箱。

  • 命令构建ed25519 key,并自动保存到.ssh目录
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/mleo/.ssh/id_ed25519):
Created directory '/Users/mleo/.ssh'.
  • 提示输入key的密码
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

注意:可以输入空和密码

  • 提示key创建成功,并保存在.ssh目录
Your identification has been saved in /Users/mleo/.ssh/id_ed25519
Your public key has been saved in /Users/mleo/.ssh/id_ed25519.pub

配置 SSH key

  • 创建配置文件
touch ~/.ssh/config
  • 配置文件写入GitHub主机信息
Host github.com                           # 别名
Hostname github.com # GitHub 主机地址
Port 22 # GitHub 主机端口
User git # GitHub 主机用户
Identityfile ~/.ssh/id_ed25519 # ssh-key
  • GitHub帐号中添加公钥key
iChochy(用户) => Settings => SSH and GPG keys => new SSH key

测试 SSH key

  • 测试 GitHub SSH 连接
ssh -T git@github.com
  • 确认是否连接
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
  • 输入 yes确认连接
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
  • 成功连接信息
Hi iChochy! You've successfully authenticated, but GitHub does not provide shell access.

使用 SSH key

  • 通过 SSH 地址克隆远程仓库
git clone git@github.com:iChochy/iChochy.git 	# 克隆远程仓库 
  • 通过 SSH 免密提交代码
Enumerating objects: 405, done.
Counting objects: 100% (405/405), done.
Delta compression using up to 8 threads
Compressing objects: 100% (205/205), done.
Writing objects: 100% (206/206), 27.81 KiB | 6.95 MiB/s, done.
Total 206 (delta 199), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (199/199), completed with 194 local objects.
To github.com:iChochy/iChochy.git
1d44cdb..bde62c3 master -> master

第一次通过 SSH key 免密连接 GitHub 的完整过程的更多相关文章

  1. Linux 设置秘钥登录(SSH免密连接)

    Secure Shell 协议,简称 SSH,是一种加密网络协议,用于客户端和主机之间的安全连接,并支持各种身份验证机制,目前最实用的身份验证机制就是基于密码的身份验证和基于公钥的身份验证两种.Lin ...

  2. Linux网络第四章:SSH远程管理及通过SSH实现服务器之间的免密连接

    目录 一.SSH远程管理基础 1.ssh协议 2.ssh原理 3.配置文件解析 4.登录方法 5.使用ssh协议传输的命令 二.免密连接的实现 1.免密连接原理 2.免密实现环境准备 3.在客户端生成 ...

  3. Mac 使用 SSH 免密连接服务器

    1.生成 SSH 秘钥 ssh-keygen -t rsa  生成的密钥对 id_rsa 和 id_rsa.pub,默认存储在 ~/.ssh 目录,其中没有后缀的是私有,有后缀 .pub 的为公钥.生 ...

  4. ssh免密连接远程服务器

    ssh免密连接远程服务器 借助ssky-keygen和ssh-copy-id工具,通过4个简单的步骤实现无需输入密码登录远程Linux主机 1 生成密钥 通过内置的工具生成RSA算法加密的密钥 ssh ...

  5. Hadoop起步之图解SSH、免密登录原理和实现

    1. 前言 emmm….最近学习大数据,需要搭建Hadoop框架,当弄好linux系统之后,第一件事就是SSH免密登录的设置.对于SSH,我觉得使用过linux系统的程序员应该并不陌生.可是吧,用起来 ...

  6. ssh批量免密

    expect命令在linux下实现批量ssh免密 发布时间:2017-11-27 08:41:39 投稿:laozhang 本次文章主要给大家讲解了在linux系统下用expect命令实现批量ssh免 ...

  7. Linux生成私钥和公钥免密连接

    本文介绍Linux系统生成私钥和公钥进行免密连接,内容比较简单,阅读需要3分钟. 1.大致流程 有时需要从服务器A免密连接到服务器B,这时需要在服务器A生成私钥和公钥,大致过程其实就2步. 1.1 在 ...

  8. CentOS下SSH远程免密登录服务器

    .5服务器上配置,通过ssh远程免密登录192. 1.安装SSH,此处省略 2.生成公钥和私钥,生成的秘钥默认在/root/.ssh/文件夹里面 [root@localhost ~ ::&&a ...

  9. ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs

    ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs 第一部分:使用ssh key 实现服务器间的免密码交互登陆 步骤1: 安装openssh-clients [root@001 ...

  10. ansible实现SSH配置免密互信

    Ansible是用来处理大批量重复性操作的工具,只需要在一台机器上就可以远程控制所有机器,但前提是必须保证每台机器之间SSH可以相互免密登录.关于Ansible的安装和环境准备请参考Ansible环境 ...

随机推荐

  1. AIX操作系统基本命令

    1,内核 bootinfo -k   2,硬件 bootinfo -r lscfg |grep proc lspv lscfg   3,操作系统 oslevel -r oslevel -s uname ...

  2. Docker restart 重启容器

    就像很多常驻后台应用程序动不动可能就需要重启操作一样,有时候我们可能也需要重启容器 而重启容器使用的就是 docker restart 命令 docker restart <container_ ...

  3. BUUCTF---old flashion

    1.题目 2.知识 3.解题 很奇怪,一段英文字母,看起来像维吉尼亚,但需要key,不知道什么是Key,我们丢到q爆破中试试 直接得出来了flag:flag{n1_2hen-d3_hu1-mi-ma_ ...

  4. Cloud Native CI/CD: tekton and argocd

    https://platform9.com/blog/argo-cd-vs-tekton-vs-jenkins-x-finding-the-right-gitops-tooling/ implemen ...

  5. C++宏定义中可变参数列表__VA_ARGS__ 及 QT 提供的宏 QT_OVERLOADED_MACRO

    1. 基本用法 VA_ARGS 是 C/C++ 中的预定义宏,用于在宏定义中表示可变参数列表(Variadic Arguments),需与省略号 ... 配合使用.其核心作用是将宏调用中的可变参数原样 ...

  6. Google Adsense中文设置

    1. 入口 https://www.google.com/adsense 2. 菜单 Account -> settings -> Personal settings 3. 切换语言 Di ...

  7. 微信公众号-自定义微信分享(vue)(JS-SDK)

    1.需求描述 日常公众号开发中,业务部门对于微信内置分享(右上角->分享到朋友等)效果不太满意,需要我们自定义相关分享效果 1.1微信默认分享效果展示 1.2通过自定义分享后效果展示 1.3微信 ...

  8. python批量下载网易云音乐文件到本地

    现在听歌大多数只支持在线听,下载要钱,没网络就白搭了.好吧,用技术手段解决免费.下载.批量等一些列问题 整个脚本的逻辑和流程是,把歌曲地址都存在一个txt中,然后循环每次取一条链接,分析链接对应歌曲的 ...

  9. [not]exists和[not]in的区别

    前言:近期在处理业务实际问题时发现使用in导致查询速度非常慢,于是查阅资料后发现使用exists能极大缩短查询时间,于是便将此经历记录下来. 数据源: grade表 stu_info表 exists与 ...

  10. php高级工程师面试题

    转载于:王召波 博客 PHP对象的克隆与引用有什么区别? 摘要: 是这样的,这个问题确切说应该是这样的:" PHP对象的赋值和克隆有什么区别 ",注意不是复制,就是复制,打开窗子说 ...