配置免密登陆服务器

前言

原来自己学习的时候在阿里云买自己的学习机,一台主机自己瞎折腾。但是参加工作以后管理的主机越来越多了,上服务器看的频率也越来越频繁,虽然有时候shell管理工具可以很方便的保存,但是mac的终端实在是太香了,使用命令联通万物,配合一些ssh_config和hosts设置可以轻而易举的上服务器,这不比xshell酷和方便吗😏

配置免密登陆服务器

免密登陆除了方便适用场景也非常多,公司代码一般都是配置ssh拉取,在github上配置了你电脑的公钥以后拉提起代码就不用输入密码也不用把密码记录到本地。

教程

了解ssh协议

ssh使用的是不对称加密的一个协议,后面我写https会详细介绍,简单来说两台主机使用非对称加密进行通信,通信和被通信的主机都需要拥有不同的秘钥,一般给发起通信方给出去的叫做公钥,自己留的叫做私钥,这个公钥和私钥都是进行解密数据的,为什么要整这么麻烦不直接http连接呢,周所周知http是透明协议,他的报文可以是没有加密的这不安全。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

配置免密登陆服务器

生成公钥和私钥

这里是linux和mac的操作,win可以点击这里,查看github官方教程

  1. 打开终端,然后输入
ssh-keygen -t rsa -C "www.someget.cn" -b 4096
// 其中-t是后面是加密算法,默认rsa,我这里画蛇添足只是想告诉大家
// -C是加入注释,一般都是自己的用户名
// -b是指定秘钥长度
// 以上参数都是无视,直接输入ssh-keygen也可以

配置免密登陆服务器

第二个高亮是指定私钥地址,这里直接回车选择默认路径就好

  1. 生成完了以后,在终端下面命令, 应该可以看到至少两个文件,一个是id_rsa还一个是id_rsa.pub,其中后缀为.pub的为公钥。把这个公钥发给你需要建立的通信方,对方就可以和你免密建立连接。
cd ~/.ssh & ll
// 去用户目录下面的.ssh查看下面的情况

把公钥给需要免密的主机

  1. 问题来了,既然这个.pub是发起通信方创建的,凭啥你给我.pub你就可以和我建立连接(建立连接意味着可以建立控制关系),刚刚只解决可以解析报文,现在解决如何能同意对方连接。
  2. 其实我刚刚里面有三个文件,还有一个authorized_keys的文件,这个文件里面记录了别人的公钥,也就是说只要别人的公钥在我这个authorized_keys里面,那么我就会可以解析对方的报文,并且同意对方连接。再提醒,这个authorized_keys是记录别人的公钥的,所以我们的公钥需要写到我们要免密登陆的主机上面。
  3. 那我们刚刚已经生成的公钥,那我们现在写入到我们要免密登陆的主机上吧

配置免密登陆服务器

cat查看公钥信息,然后复制到剪贴板

配置免密登陆服务器

我修改host, 然后进行ssh登陆,还没配置需要密码

配置免密登陆服务器

登陆上主机,打开用户目录下面的.ssh文件

  1. 这里注意,这个公钥和私钥都是我之前生成过的,如果你没生成过它里面是没有的,这个authorized_keys是需要自己创建的,还有一个known_hosts这是连接过的信息,有人连接过这个主机,会自动生成这个文件并且在里面添加一条记录
mkdir authorized_keys
echo "你的刚刚复制内容" >> authorized_keys
// 这样你就完成了配置了
  1. 最后你就可以直接登陆你的主机了

扩展

  1. 讲道理,这个ssh的非对称加密只使用公钥和私钥来进行鉴权,如果对安全不敏感,你可以分发自己的私钥、公钥和authorized_keys文件,这样在很多集群直接就可以相互通信,而不需要每一台都生成key,然后再进行每一台互相写入公钥。大数据集群直接很多这么使用,但是这有悖非对称加密的初衷。
  2. 如何配置github免密登陆

  3. 点击https://github.com/settings/keys

    配置免密登陆服务器

点击这个按钮

配置免密登陆服务器

输入完在点击添加

  • 然后你就可以使用ssh拉取代码啦

更多有意思的文章欢迎大家来我的个人blog挖掘,点击这里

Original: https://www.cnblogs.com/oreoft/p/15731525.html
Author: 没有气的汽水
Title: 配置免密登陆服务器

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612812/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux Ubuntu 添加新用户

    1. 了解配置文件 Linux下与用户信息相关的配置文件有 /etc/passwd、 /etc/group、 /etc/shadow等,其权限分别如下: /etc/passwd:保…

    Linux 2023年5月27日
    0140
  • MySQL表空间回收的正确姿势

    不知道大家有没有遇到这样的一种情况,线上业务在MySQL表上做增删改查操作,随着时间的推移,表里面的数据越来越多,表数据文件越来越大,数据库占用的空间自然也逐渐增长 为了缩小磁盘上…

    Linux 2023年6月13日
    096
  • MySQL SUBSTRING_INDEX截取字符串

    一、SUBSTRING_INDEX 二、示例 Original: https://www.cnblogs.com/woods1815/p/16368248.htmlAuthor: …

    Linux 2023年6月13日
    082
  • Redis主从复制的配置和实现原理

    Redis的持久化功能在一定程度上保证了数据的安全性,即便是服务器宕机的情况下,也可以保证数据的丢失非常少。通常,为了避免服务的单点故障,会把数据复制到多个副本放在不同的服务器上,…

    Linux 2023年5月28日
    091
  • ASCLL 字符码

    信息在计算机上是用二进制数表示的,这种表示法让人很难理解。因此,计算机上都配有输入和输出设备,这些设备的主要目的就是以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为…

    Linux 2023年6月7日
    0119
  • Ubuntu常用命令

    Ubuntu(18.04)下更改用户名和主机名 更改主机名字: (1)修改hostname文件 这个文件中的内容是用来显示主机名的,修改这个文件后,立刻重启 (2)修改hosts文…

    Linux 2023年6月13日
    090
  • 我懂得了什么

    站在24岁的这个档口,没有学业又没有工作的时刻,前不着村后不着店。我觉得应该要写一些总结,虽然年仅24的我相比老人家总结不出更深刻的道理,但是现在是互联网的时代,获取知识的途径已经…

    Linux 2023年6月6日
    0104
  • 机器学习:单元线性回归(python简单实现)

    本篇文章主要记录和讲解使用python如何简单实现单元线性回归算法 文章简介 使用python简单实现机器学习中单元线性回归算法。 算法目的 该算法核心目的是为了求出假设函数h中多…

    Linux 2023年6月7日
    093
  • Centos8安装docker报错(错误提示:All mirrors were tried)

    Centos8从零安装Docker-ce 背景:我把服务器整个yum源的配置文件里的内容全删了。因为我一直碰到”All mirrors were tried&#8221…

    Linux 2023年5月27日
    0157
  • 关于格物致知

    格物致知: “格物,致知,诚意,正心,修身,齐家,治国,平天下”是孔子学生曾子所著《礼记.大学》里的八条目,而”格物致知”更是儒学思…

    Linux 2023年6月7日
    0131
  • centos7 安装MariaDB 10.6

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 背景 centos7使用yum install mariadb-server命令安装的默认版本是5.5的,这是因为系统默认源只有…

    Linux 2023年5月27日
    0375
  • 【总结】瞬时高并发(秒杀/活动)Redis方案

    1,Redis 丰富的数据结构(Data Structures) * 字符串(String) – Redis字符串能包含 任意类型的数据 一个字符串类型的值最多能存储 …

    Linux 2023年5月28日
    088
  • Bitmap在Redis中的应用(转)

    原文:https://cloud.tencent.com/developer/news/387248 作者:一叶而不知秋 作为铺垫,我们先来介绍一些Bitmap的相关内容: 位图主…

    Linux 2023年5月28日
    099
  • Python递归遍历目录下所有文件

    递归遍历目录下所有文件 方法一 import os def gci(filepath): #遍历filepath下所有文件,包括子目录 files = os.listdir(fil…

    Linux 2023年6月13日
    0118
  • Docker安装Portainer

    Docker安装Portainer Docker介绍 Docker是一个开源的容器引擎,完全使用沙箱机制,相互之间不会有任何接口,并且容器性能开销低,让开发者可以打包应用或者依赖包…

    Linux 2023年6月6日
    0125
  • 【Leetcode】53. 最大子数组和

    给你一个整数数组 nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输&am…

    Linux 2023年6月6日
    098
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球