简便工作时间的法宝:以密钥验证的方式来登录服务器

本文介绍了为何使用SSH密钥验证登录服务器比密码验证更安全、高效,详细阐述了密钥验证的优势及步骤,包括如何生成SSH密钥、上传至服务器,并解决可能出现的问题,旨在帮助读者提升远程工作流程的效率。

简便工作时间的法宝:以密钥验证的方式来登录服务器

GolangError 防踩坑,无法分配给 map 中的结构体字段 name


一、为什么我们需要以密钥验证的方式?

两种验证方式

当我们在工作中连接服务器通常有两种方式,也就是密码验证与密钥验证:

  1. 密码验证:这是我们最常接触到的验证方式,无论是你的qq、微信还是淘宝、京东都依然保留着密码登录的方式,服务器也不例外。通常我们使用密码验证时,是通过我们输入密码与用户名等认证信息,传输给服务器后服务器进行验证是否该用户允许登入。

  2. 密钥验证:相比于密码验证,这种方式几乎不存在于我们的日常生活中。那它却为什么能提高我们的工作效率,却不能用做其他软件的验证方式。

为什么不能作为其他软件的验证方式?

  1. 相比于密码验证的简单直接,通过命令行交互的密钥验证通常无法让人理解。特别是对于从未接触过软件开发的人来说,使用命令行来交互简直是天方夜谭。
  2. 密钥验证的一次性繁琐,密钥验证在我们频繁更换登录方式时,我们必须将每一个客户端与服务器做繁琐的密钥交换,而非密码验证进行单次验证来的简单直接。
  3. 安全性不足,对于频繁更换客户端的用户,他们必须将自己的每一个客户端与服务器做深度绑定。那么这样的缺点就是,我们如果遗失了客户端,是否意味着我们的服务器也完全暴露在它人视野之中。

为什么可以作为服务器的验证方式,优势何在?

  1. 服务器与其他常用软件不同,在我们的工作过程中,我们需要连接服务器的客户端、主机往往也是公司的财产,而不是作为我们随时随地连接的娱乐方式。
  2. 由于公司大部分只开放内网的服务器,那么安全性也就能大大保障。
  3. 解决了大部分障碍,那么服务器密钥连接也就体现出来了,我们不用频繁的输入服务器密码,无论是编译、部署、调试都是一个枯燥的过程,更改一个小功能甚至需要连续调试两三次、而这个时候的所节省的时间也是提升我们工作效率的所在

二、密钥交换的详细步骤

1.在客户端生成ssh密钥

1.打开命令行工具,此处举例git bash

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

在这里插入图片描述
此时便代表着我们生成成功,此时我们可以走第二步验证

2.切换至 ~/.ssh

cd ~/.ssh

切换到生成的文件夹

3.查询成功时

查询成功时,会显示出我们的ssh-rsa、右下角则是我们的用户名与主机名称

在这里插入图片描述

2.上传至服务器

1.ssh-copy-id

ssh-copy-id username@192.168.1.1

在这里插入图片描述

此时若出现 yes/no 则输入yes
如果上传成功则会出现需要输入你所要访问的服务器密码
验证成功时提示 number of keys added
我们也就实现了密钥验证的步骤
此时自动把公钥传输到服务端的 $HOME/.ssh/authorized_keys 文件夹里

2.ssh-copy-id 失败

/usr/bin/ssh-copy-id: ERROR:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ERROR: @
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ ERROR:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ERROR: IT
IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! ERROR: Someone
could be eavesdropping on you right now (man-in-the-middle attack)!
ERROR: It is also possible that a host key has just been changed.
ERROR: The fingerprint for the ED25519 key sent by the remote host is
ERROR: SHA256:Uc7XqlYt4b9wviJzstWwD/q6cyjKdomez21NEqmlqQw. ERROR:
Please contact your system administrator. ERROR: Add correct host key
in /c/Users/qqq/.ssh/known_hosts to get rid of this message. ERROR:
Offending ECDSA key in /c/Users/qqq/.ssh/known_hosts:5

解决

此时失败是因为我们曾经在服务器厂商重置过服务器

 ssh-keygen -R 你所要上传密钥的的服务器IP

在这里插入图片描述
此时表示我们已经结束,继续执行前一步 ssh-copy-id 即可


总结

SSH是一种安全通道协议,是用来实现字符界面的远程登陆,远程复制等功能的,我们日常生活可以使用该功能来进行远程操控,省去了很多麻烦。
解决问题、提高工作效率的问题其实都在简单的小事、简简单单的密码验证,也能为我们节省大量开发的时间、这也有利于不断的自我提升。

希望这个博客能对你有所益处。我是轻王,我为自己代言。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫轻王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值