系统运维-Linux SSH密码登录免密登录密钥登陆

SSH:安全外壳协议,是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议

SSH由三部分构成:

1.传输层协议 [SSH-TRANS]:

        提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

2.用户认证协议 [SSH-USERAUTH]

        用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

3.连接协议 [SSH-CONNECT]

        将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

目录

密码登录

免密登录

密钥登录


密码登录

密码登录也叫本地登录,即使用系统中有的用户进行登录

允许本地登录:

vim /etc/ssh/sshd_config	#编辑ssh配置文件Port 22				#端口
PermitRootLogin yes	#允许root远程登录
#MaxAuthTries 6		#密码最多尝试次数
#MaxSessions 10		#最多登录数
#PermitEmptyPasswords no	#禁止空密码

免密登录

指不用输入密码可直接进行登录,这种方式较为不安全

先生成密钥,在所有需要免密登录的服务器上执行

ssh-keygen				#生成密钥(在所有需要免密登录的主机上执行)Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ph6xfXo7j7Vl+ez9FkxS28xo8u92AWxxaWbEaJTZgkQ root@linux4
The key's randomart image is:
+---[RSA 3072]----+
|          oEo.B..|
|           . B X |
|            o O+o|
|            .=oo+|
|      . S   .+=  |
|       *      .= |
|      + . . . +.o|
|     . . ooo + o*|
|      . ..o+o  =X|
+----[SHA256]-----+

选择一台根ssh,复制私钥和发送密钥

ssh-copy-id linux3.skills.com		#复制linux3 id(在所有需要免密登录的主机上执行 linux3为选择其中一台作为ssh根服务器)/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'linux3.skills.com (192.168.100.70)' can't be established.
ECDSA key fingerprint is SHA256:PaZo5HAGzDRzwRAiEZGz4U7lrUXCuBXCPqaNyZlaO0M.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes		#输入 yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@linux3.skills.com's password: 			#输入密码Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'linux3.skills.com'"
and check to make sure that only the key(s) you wanted were added.
cd ~/.ssh		#切换目录
scp authorized_keys linux4.skills.com:~/.ssh	#发送密钥(在根ssh服务器上执行所有(除自己)的完全合格域名)The authenticity of host 'linux4.skills.com (192.168.100.80)' can't be established.
ECDSA key fingerprint is SHA256:eZTdD1yO5XNEVi0YY0ibebxDFIr/aoJLU5r4MjBZuKo.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes		#输入yes
Warning: Permanently added 'linux4.skills.com,192.168.100.80' (ECDSA) to the list of known hosts.
root@linux4.skills.com's password: 			#输入免密
authorized_keys        100% 1130   118.9KB/s   00:00

密钥登录

使用公钥+私钥认证的方式,使用时较为安全

一般不使用root用户生成密钥对,否则都要使用root操作

ssh-keygen 									#在要连接上的客户机生成密钥对Generating public/private rsa key pair.
Enter file in which to save the key (/home/chen/.ssh/id_rsa): 		#回车
/home/chen/.ssh/id_rsa already exists.								
Overwrite (y/n)? y													#覆盖原有密钥(已生成过)
Enter passphrase (empty for no passphrase): 						#输入密钥密码
Enter same passphrase again: 										#再次输入密钥密码
Your identification has been saved in /home/chen/.ssh/id_rsa
Your public key has been saved in /home/chen/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:eUpOqm172pMbETKWHxXYtpWwbUrUCGaftI08NeXjbms chen@chen-HP-Pro-Tower-288-G9-PCI-Desktop-PC
The key's randomart image is:
+---[RSA 3072]----+
|        ++*=oo.  |
|       +.*+O+o   |
|      = o.Xo+ o  |
|     . + =.+ . . |
|        S o   .  |
|       = +   .   |
|      . +.    o  |
|     o..+.   .E. |
|    ..++oo   ..  |
+----[SHA256]-----+
ssh-copy-id root@10.1.220.100					#上传公钥到服务器/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.1.220.100's password: 					#输入服务器密码Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'root@10.1.220.100'"
and check to make sure that only the key(s) you wanted were added.

以上操作后,执行ssh重启动即可

systemctl restart sshd							#重启ssh服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/601951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring boot 集成邮件发送功能

一、首先到QQ邮箱申请开启POP3、SMTP协议 二、安装依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><dependency><groupId>org.springframew…

C++ 单调栈 || 单调栈模版题

给定一个长度为 N 的整数数列&#xff0c;输出每个数左边第一个比它小的数&#xff0c;如果不存在则输出 −1 。 输入格式 第一行包含整数 N &#xff0c;表示数列长度。 第二行包含 N 个整数&#xff0c;表示整数数列。 输出格式 共一行&#xff0c;包含 N 个整数&#…

ROS 传感器—相机的介绍

在ROS中&#xff0c;相机是一种常见的传感器设备&#xff0c;用于获取视觉信息。ROS支持多种类型的相机&#xff0c;并提供了统一的接口和工具来处理相机数据&#xff0c;使得开发者可以方便地在不同硬件平台上实现视觉功能。 在ROS中&#xff0c;可以通过usb_cam、camera_dri…

探索生成式AI:自动化、问题解决与创新力

目录 自动化和效率&#xff1a;生成式AI的颠覆力量 解谜大师生成式AI&#xff1a;如何理解和解决问题 创新与创造力的启迪&#xff1a;生成式AI的无限潜能 自动化和效率&#xff1a;生成式AI的颠覆力量 1. 神奇的代码生成器&#xff1a;生成式AI可以帮助开发人员像魔术一样快…

TemporalKit的纯手动安装

最近在用本地SD安装temporalkit插件 本地安装插件最常见的问题就是&#xff0c;GitCommandError:… 原因就是&#xff0c;没有科学上网&#xff0c;而且即使搭了ladder&#xff0c;在SD的“从网址上安装”或是“插件安装”都不行&#xff0c;都不行&#xff01;&#xff01;&am…

【JAVA】OPENGL+TIFF格式图片,不同阈值旋转效果

有些科学研究领域会用到一些TIFF格式图片&#xff0c;由于是多张图片相互渐变&#xff0c;看起来比较有意思&#xff1a; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.*;/*** 可以自已定义日志打印格式…

窗体控件(表格和控制器)

DataGridView 控件 DataGridView控件是C#中的一个Windows Forms控件&#xff0c;用于在应用程序中显示和编辑表格形式的数据。 先拖出四个label控件和四个TextBox控件和一个ComboBox和一个Button按钮&#xff0c;下面是一个DataGridView控件 准备一个Student类 namespace _窗…

今日学习的 jdbc statement的增删改

首先要获取jdbc文件 Class.forName("com.mysql.jdbc.Driver"); 连接数据库&#xff08;数据库要提前打完在写增删改查&#xff09; Connection connection DriverManager.getConnection("jdbc:mysql://localhost:3306/db_day11","root","…

八大算法排序@堆排序(C语言版本)

目录 堆排序大堆排序概念算法思想建堆建堆核心算法建堆的代码 排序代码实现 小堆排序代码实现时间复杂度空间复杂度 特性总结 堆排序 堆排序借用的是堆的特性来实现排序功能的。大堆需要满足父节点大于子节点&#xff0c;因此堆顶是整个数组中的最大元素。小堆则相反&#xff0…

码农的周末日常---2024/1/6

上周总结 按照规划进行开发&#xff0c;处事不惊&#xff0c;稳稳前行 2024.1.6 天气晴 温度适宜 AM 睡觉前不建议做决定是真的&#xff0c;昨天想着睡到中午&#xff0c;今天九点多醒了&#xff0c;得了&#xff0c;不想睡了 日常三连吧&#xff0c;…

python渗透工具编写学习笔记:10、网络爬虫基础/多功能编写

目录 前言 10.1 概念 10.2 调度器/解析器 10.3 存储器/去重器 10.4 日志模块 10.5 反爬模块 10.6 代理模块 前言 在渗透工具中&#xff0c;网络爬虫有着不可忽视的作用&#xff0c;它能够快速而精准的搜寻、提取我们所需要的信息并按照我们所需要的格式排列&#xff0c;…

HTTP网络相关知识

1 第一步&#xff1a; URI(统一资源标识符) URL&#xff08;统一资源定位符&#xff09;URN&#xff08;统一资源名称&#xff09;&#xff1b; 2 传输协议&#xff1a; HTTP: 超文本传输协议 HTTPS: HTTP SSL&#xff08;加密证书&#xff09;相对于…

使用Vue3 + Vite创建uni-app项目(Webstorm)

使用Vue3 Vite创建uni-app项目&#xff08;Webstorm&#xff09; 参考&#xff1a;前端VUE3Vite UniAPP-- 框架搭建_uniapp vite-CSDN博客 // 参考github.com的库&#xff1a;https://github.com/dcloudio/uni-preset-vue npx degit dcloudio/uni-preset-vue#vite-ts vite-vu…

【SQL】delete 与 truncate 命令的区别

区别 truncatedelete属于 DDL(数据定义语言) 范畴属于 DML(数据操作语言) 范畴删除表数据&#xff0c;不能删除视图数据删除表数据&#xff0c;删除视图数据只可以梭哈删除通过 where 进行选择性删除不涉及事务处理删除表中数据涉及事务处理效率高、但无法撤销效率低&#xff…

【mars3d】new mars3d.layer.GeoJsonLayer({实现多孔面遮罩mask: true,

【mars3d】new mars3d.layer.GeoJsonLayer({实现多孔面遮罩 官网测试示例&#xff1a; 1.功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 测试代码&#xff1a; export function showDraw(isFlyTo) { removeLayer() const geoJsonLayer new mars3d.layer.GeoJsonLaye…

神经网络-搭建小实战和Sequential的使用

CIFAR-10 model structure 通过已知参数&#xff08;高、宽、dilation1、kernel_size&#xff09;推断stride和padding的大小 网络 import torch from torch import nnclass Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.conv1 nn.Conv2d(in_chan…

TSConfig 配置(tsconfig.json)

详细总结一下TSConfig 的相关配置项。个人笔记&#xff0c;仅供参考&#xff0c;欢迎批评指正&#xff01; 另外&#xff0c;如果想了解更多ts相关知识&#xff0c;可以参考我的其他笔记&#xff1a; vue3ts开发干货笔记ts相关笔记&#xff08;基础必看&#xff09;ts相关笔记…

LeetCode-有效的字母异位词(242)

题目描述&#xff1a; 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 思路&#xff1a; 这题还是比较简单的&#xff0c;首先将两个字符…

快乐学Python,Python基础之代码复用?「函数」

上一篇文章中&#xff0c;我们了解了代码的分支结构&#xff08;if 家族语句&#xff09;和循环结构&#xff08;for 循环和 while 循环&#xff09;。通过了解这些结构&#xff0c;我们已经能够写出稍微复杂一些的代码。但当代码一多&#xff0c;就会遇到一些问题。 上一篇文…