配置免密登陆服务器

前言

原来自己学习的时候在阿里云买自己的学习机,一台主机自己瞎折腾。但是参加工作以后管理的主机越来越多了,上服务器看的频率也越来越频繁,虽然有时候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)

大家都在看

  • TCP三次握手与四次挥手

    什么是三次握手? 一般情况下,连接是由客户端向服务端发起的。 第一次,客户端发送一个TCP数据报并将SYN同步位置为1,表示要建立连接,此时客户端会从CLOSED状态变为SYN_S…

    Linux 2023年6月8日
    095
  • 视图层

    目录 虚拟环境 django路由层版本区别 视图函数返回值 JsonResponse对象 上传文件 request方法 FBV与CBV CBV源剖析 模板语法传值 内容 虚拟环境 …

    Linux 2023年6月7日
    068
  • linux之ifconfig查看ip

    ifconfig 用于显示或设置网络设备。 设置网络设备的状态和信息 [En] set the status and information of network devices*…

    Linux 2023年5月27日
    0120
  • 013 Linux 搞懂「文件所属者更改及权限的赋予」从未如此简单(chmod、chgrp、chown)

    01 一图详解「ls -l」 02 两种符号区分表示文件和目录 03 三种访问权限及表示 04 四种符号表示文件所属者用户 05 三个变更文件所属者及修改所属者权限的命令 06 工…

    Linux 2023年5月27日
    089
  • Linux 常用命令总结(三)

    一、实用命令 1、crontab(定时任务) (1)基本概念crontab 是用来管理定时任务的命令。系统启动后,将会自动调用 crontab,如果存在任务,则根据相关定义去执行。…

    Linux 2023年5月27日
    0107
  • BootstrapTreeView 实现懒加载和点击事件。

    BootstrapTreeView的js下载位置:https://github.com/patternfly/patternfly-bootstrap-treeview。(注意不是…

    Linux 2023年6月7日
    096
  • 网络设备配置–8、利用ospf配置动态路由

    一、前言 同系列前几篇:网络设备配置–1、配置交换机enable、console、telnet密码网络设备配置–2、通过交换机划分vlan网络设备配置&#8…

    Linux 2023年6月8日
    0101
  • 容器的监控和日志管理

    一、Docker监控工具和使用 1、Docker自带的监控命令 监控容器最简单的方法是使用Docker自带的监控命令:docker ps、docker top、docker sta…

    Linux 2023年6月8日
    087
  • Ajax

    前戏 概念 异步提交,局部刷新 最大的优点是在页面不刷新的情况下可以与后端进行数据交互 用户注册无需点击按钮内部也可完成数据交互 同步交互:客户端发出一个请求后,需要等待服务器响应…

    Linux 2023年6月7日
    068
  • MySQL注入点与SQL语句的关系

    注入位置分类 这个分类方式是我自己想的,可能会有一些不准确。如图所示注入方式有3种,内联、终止、堆叠。每种注入方式又根据服务器的响应分为4类,时间延迟、报错、布尔、将执行结果直接输…

    Linux 2023年6月6日
    0124
  • JavaScript快速入门-08-JSON

    8 JSON 因平时工作时,使用JSON的场景比较多,其JSON语法不再介绍,仅介绍在JavaScript中JSON的解析和序列化。 8.1 JSON 对象 JSON对象有两个方法…

    Linux 2023年6月7日
    098
  • postgres 切换数据库提示remaining connection slots are reserved for non-replication superuser connections

    场景 使用下面命令在pg终端内,切换数据库时提示 \c db_name pg_user; # pg_user是非超级用户 报错 psql: FATAL: 53300: remain…

    Linux 2023年6月8日
    086
  • 004 Linux 揭开神器 vim 面纱

    01 开篇初识 vim vim 功能吊炸天,但我们掌握一些常用的命令即可应对日常的使用了,不记流水账! Linux 中最常用的编辑器是什么? vim ! vi 跟 vim 啥区别?…

    Linux 2023年5月27日
    097
  • 字符串

    20、【剑指Offer学习】【面试题20:表示数值的字符串】 38、【剑指Offer学习】【面试题38:字符串的排列】 46、【剑指Offer学习】【面试题46:把数字翻译成字符串…

    Linux 2023年6月13日
    0108
  • 用 shell 脚本做命令行工具扩展

    问题的提出 公司开发机与远程服务器之间有严格的隔离策略,不能直接使用 ssh 登录,而必需通过跳板机。这样一来,本地与服务器之间的一些文件传输变得非常不便。经过咨询,运维教了我一招…

    Linux 2023年5月27日
    0118
  • linux 僵尸进程处理

    什么是僵尸进程 我们启动一个程序,开始我们的任务,然后等任务结束了,我们就停止这个进程。 进程停止后, 该进程就会从进程表中移除。 但是,有时候有些程序即使执行完了也依然留在进程表…

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