专栏首页码农小胖哥的码农生涯推荐使用 SSH 方式连接 Git 服务

推荐使用 SSH 方式连接 Git 服务

1. 前言

Git 已经成为我们开发最流行的版本控制工具了,Git 支持多种传输协议,其中最常用的就是httpsssh,平常我们用 https 比较多,这种方式 pullpush 代码都要输入账户密码,非常不方便。那么有没有更加方便而且安全的方式呢?当然有!ssh 方式可以做到这一点。

2. Git 中的 ssh

公有 Git 服务诸如 GitHubGiteeCodingGitlab 等都提供了 ssh 功能。通过 GitlabGogsGitea 搭建的私有 Git 服务也都有 ssh 功能。一般我们都可以在对应的设置 中找到。以 Gitee 为例:

那么如何生成 ssh 公钥呢?

3. ssh 公钥的生成

ssh 生成公钥的算法有很多种,我们通常使用 RSA 算法来生成密钥对。确保你在不同操作系统的用户目录 ~/.ssh 下没有 id_rsaid_rsa.pub ,如果有就说明你已经生成了无需再生成。针对 Linux\MacWindows 和我们来走一下流程。

3.1 Linux\Mac 为例

命令行执行:

ssh-keygen -t rsa -b 4096 -C "替换为常用email地址"

后面让你输入密码你可以输入一个,或者一路 enter 按到底直接生成。生成完毕后执行以下命令查看公钥:

 cat ~/.ssh/id_rsa.pub

切记一定要带 .pub 后缀,否则则为私钥。然后出现以 ssh-rsa 开头的字符串就是公钥:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDBYgnpCY9j/xhhZO4ryy7YrJRRUXydbVUyi8dSfyn5obFD0iJhqPCF1jk5LZuryhsmy
…………………(此处省略)
mH1eqd4SMXO8fJoaM7JOWYSs/xgRK9bw== dax@felord.cn

3.2 Windows 下生成 ssh

如果你本地安装有 Git Bash 方法可以按照上面去模仿即可。Bash 可以去你 Git 安装目录找,它也是一种 Shell 操作界面。然后可以按照 3.1 的方法生成。Window10 某个更新以后开始内置了 ssh 服务。以管理员身份打开命令行输入 ssh 如果出现了提示命令说明你已经开启了 ssh 服务。如果没有则需要你手动开启。在 应用和功能 选项中搜索 openssh 选择客户端或者服务器都可以:

安装后需要重启,重启后打开命令行,输入 ssh 进行检查即可。然后就可以按照 3.1 的方式生成公钥了。

Win 下开启/关闭 ssh 命令:

net start sshd
net stop sshd

4. 配置

我们生成了密钥对之后将 id_rsa.pub所有内容复制并填写到 公钥 一栏中配置好我们生成的公钥,Git 服务端就认可我们当前的主机了。我们就能以 git@ hostname:user/project.git 的形式进行无密码访问远程 Git 仓库了。

本文分享自微信公众号 - 码农小胖哥(Felordcn),作者:码农小胖哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用 RestTemplate 进行第三方Rest服务调用

    RestTemplate 是 Spring 提供的一个调用 Restful 服务的抽象层,它简化的同 Restful 服务的通信方式,隐藏了不必要的一些细节,让...

    码农小胖哥
  • 从Spring 应用上下文获取 Bean 的常用姿势

    通常,在Spring应用程序中,当我们使用 @Bean,@Service,@Controller,@Configuration 或者其它特定的注解将 Bean ...

    码农小胖哥
  • Java常用构建对象的三种方式

    当我们面对具有大量可选成员变量的 Java 类时,创建这些对象的最佳方法是什么?通常有三种方法: 伸缩构造函数,JavaBean模式和构建器模式。

    码农小胖哥
  • ssh 双机互信:免密码登录设置步骤及常见问题

    在 linux 系统管理中,设置免密码登录,进行机器的批量管理是最常用的一个方法。比如针对几十甚至上百台线上机器,通常我们会设置一台“发布机”作为中央控制机对其...

    用户1177713
  • git使用双秘钥

    由于新项目需要两个github账号,然后一个git秘钥只能绑定一个号,所以特地写出教程,教你如何配置双秘钥

    huanhao
  • 大家好,给大家介绍一下,这是linux运维安全之SSH安全

    SSH一般用途 提供shell,解决telnet不安全的传输 1、修改默认ssh默认端口 vi /etc/ssh/sshd_config 修改之后重启 >sys...

    用户1467662
  • ssh服务、密钥登陆配置

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1...

    863987322
  • Core Linux折腾(二)

    目录 Core Linux折腾(一)[一] Core Linux折腾(一)[二] Core Linux折腾(二) Core Linux折腾(三) Co...

    Pulsar-V
  • python_ssh h3c 路由器

    py3study
  • 如何实现 ssh 无密码登录

    假设你是hostA上的一个用户"aliceA",想以用户“aliceB”的身份ssh到hostB上,但又不想输入密码。那么,你可以参考这篇教程实现ssh无密码...

    小小科

扫码关注云+社区

领取腾讯云代金券