操作系统使用免密登录

news2024/9/22 21:29:48

服务器免密登录

背景

在工作中使用密码登录有时候会出现这样或者那样的不方便,一是密码要输入,如果明文输入则不安全,二则一旦修改密码要重新分发到有权限的小伙伴

场景

在之前的工作中有很多场景需要免密等登录,使用免密带来的便利

  1. 可以免密登录远程机器,方便快捷,不受对方改密码的限制
  2. 可以使用rsync定时拷贝文件
  3. 使用scp进行文件拷贝
  4. 使用Ansible进行远程服务器管理等

可能存在的问题

免密虽然好用,但要配置,在使用过程中未免会遇到各种问题,我这边在Linux上遇到的问题有

  1. 公私钥不匹配
  2. .ssh权限问题
  3. 第一次必须手动输入yes的问题
  4. windows上无法使用免密的问题

实现

Linux上设置

ssh认证的原理简单来说是这样的,在本地的私钥和远程机器的中authorized_keys存储的公钥进行配对,配对成功即可实现远程登录

Linux上首先这么操作的,一路回车,会在生成当前用户家目录下生成.ssh文件夹和文件夹下的id_rsa(私钥)id_rsa.pub(公钥)

[test@localhost~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa): 
Created directory '/home/test/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:sFqV+jGW52h9fuyREovdSGk9n4s5y3/SHm4mCwwpMd4 test@localhost
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|         .       |
|      .oo        |
|      .=+..  o   |
|      +oSE. = o  |
|     o o.Bo= = +.|
|    .   + +o*.++.|
|       .   oo+B+=|
|            .OX*o|
+----[SHA256]-----+

目录结构

[test@localhost~]$ tree .ssh/
.ssh/
├── id_rsa
└── id_rsa.pub

0 directories, 2 files
[test@localhost~]$ 

将公钥拷贝到远程机器


[test@localhost~]$ ssh-copy-id test@192.168.31.22
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/test/.ssh/id_rsa.pub"
The authenticity of host '192.168.31.22 (192.168.31.22)' can't be established.
ECDSA key fingerprint is SHA256:yjNMl5BfVvsJ3HmpCPv3B3Y+5XbT4mxwMnDGUHSpnBs.
ECDSA key fingerprint is MD5:0d:08:47:ee:4f:32:a6:8b:8f:2d:dd:fa:f4:f3:e0:5a.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
test@192.168.31.22's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'test@192.168.31.22'"
and check to make sure that only the key(s) you wanted were added.

[test@localhost~]$ 

或者手动将公钥拷贝到~/.ssh/authorized_keys文件中,切记公钥拷贝的时候不可换行
正常情况下,这样就完成了免密登录

ssh 'test@192.168.31.22'

在Linux上遇到的问题大部分是权限的问题

.ssh 权限要700 -rwx------
id_rsa 权限 600 -rw-------
authorized_keys 权限 600 -rw-------
远程登录用户的家目录755以下

如果指定私钥登录则命令是

ssh -i /path/id_rsa test@192.168.31.22

windows上设置

windows上设置和Linux上的方式是一样的,但windows上并没有Linux的命令则需如下操作

  1. 安装gitbash
    主机和客户机都要安装,步骤简单一路回车即可,下载地址

  2. 客户机上安装openssh
    只在测试机安装,回车都不用,直接默认地址,要用管理员安装下载地址

  3. 调整注册表
    客户机调整注册表,wind+r 输入regedit,找到openssh对应的选项,新增DefaultShell,这样远程登录后是gitbash的方式登录
    在这里插入图片描述

  4. 调整openssh的配置
    这个坑了我好几天,在问了大佬才知道要调整配置
    在C:\ProgramData\ssh目录中有个sshd_config的配置,将AuthorizedKeysFile注释掉,不注释掉则无法完成登录

#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

还没完,还要重启sshd服务

# 查看sshd的状态
Get-Service -Name sshd
PS C:\Users\Administrator>  Get-Service -Name sshd

Status   Name               DisplayName
------   ----               -----------
Running  sshd               OpenSSH SSH Server

# 重启
sshd
Restart-Service sshd
# 停止
Stop-Service sshd
# 启动
Start-Service sshd

到这里已经完成了,折腾了我好几天,一个注释的事,学艺不经,继续努力。

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

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

相关文章

Lvs missing port问题实例

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 LVS相关文章链接: LVS 流程 SVS 流程 LVS extract net方法

QMLDay2:圆角按钮,关联键盘左右键,鼠标点击。状态切换控制。

QMLDay2 test1 作用: 圆角按钮,关联键盘左右键,鼠标点击。状态切换控制。 代码: import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15Window {width: 640height: 480visible: truecolor: "wh…

H.265/HEVC 速率控制

文章目录 速率控制视频编码速率控制速率控制的基本原理缓冲机制速率控制技术 H.265/HEVC 速率控制1. 目标比特分配2. 量化参数确定 速率控制 目前实际的视频编码率失真优化过程包括两部分:速率控制部分将视频序列分成编码单元,考虑编码单元的相关性通过…

C#,数值计算——t-分布(Student distribution)的计算方法与源程序

在概率论和统计学中,学生t-分布(Students t-distribution)经常应用在对呈正态分布的总体的均值进行估计。它是对两个样本均值差异进行显著性测试的学生t测定的基础。t检定改进了Z检定(en:Z-test),不论样本数…

【PyQt实现复现框CheckBox】

PyQt实现复现框CheckBox 1 安装环境2 CtrlN,新建Main Window窗口,保存为checkBox.ui文件3 CheckBox的三种状态4 实现通用复选框的选中状态设置用户权限功能 1 安装环境 1)Python环境安装PyQt5、PyQt-sip、PyQt5Designer、PyQt5-tools 2&…

【搜索】BFS中的最短路模型

算法提高课笔记 目录 单源最短路迷宫问题题意思路代码 武士风度的牛题意思路代码 抓住那头牛题意思路代码 多源最短路矩阵距离题意思路代码 双端队列BFS电路维修题意思路代码(加了注释) BFS可以解决边权为1的最短路问题,下面是相关例题 单源…

Mybatis 知识点

Mybatis 知识点 1.1 Mybatis 简介 1.1.1 什么是 Mybatis Mybatis 是一款优秀的持久层框架支持定制化 SQL、存储过程及高级映射Mybatis 几乎避免了所有的 JDBC 代码和手动设置参数以及获取结果集MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO…

PyTorch深度学习实战(8)——批归一化

PyTorch深度学习实战(8)——批归一化 0. 前言1. 批归一化原理2. 批归一化优势3. 批归一化对模型训练的影响3.1 未使用批归一化,且输入值较小3.2 使用批归一化,且输入值较小3.3 使用批归一化,且输入值较大 小结系列链接…

Redis—环境搭建

Redis—环境搭建 🔎Centos 安装 Redis5创建符号链接修改配置文件启动 Redis停止 Redis 🔎Centos 安装 Redis5 Centos8 安装 Redis5 yum install -y redisCentos7 安装 Redis5 Centos7 中 yum 源提供的 Redis 版本是 Redis3(有点老), 因此先安装 scl 源 …

算法综合篇专题二:滑动窗口

“在混沌想法中&#xff0c;最不可理喻念头。” 1、长度最小的子数组 (1) 题目解析 (2) 算法原理 class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int n nums.size();int sum 0;int len INT_MAX;for(int left0,r…

mysql进阶-用户的创建_修改_删除

1. 使用mysql单次查询 [rootVM-4-6-centos /]# mysql -h localhost -P 3306 -p mytest -e "select * from book1"; Enter password: ------------------------------------------- | id | category_id | book_name | num | ----------------------------…

数据结构 | 基本数据结构——队列

目录 一、何谓队列 二、队列抽象数据类型 三、用Python实现队列 四、模拟&#xff1a;传土豆 五、模拟&#xff1a;打印任务 5.1 主要模拟步骤 5.2 Python实现 一、何谓队列 队列是有序集合&#xff0c;添加操作发生在“尾部”&#xff0c;移除操作则发生在“头部”。新…

【Javascript】基础知识

文章目录 01 变量的声明02 数据类型字符串型boolean类型undefined null类型symbol类型超大整数 bigint数组类型普通对象 01 变量的声明 02 数据类型 复习: 声明 ​ 声明变量关键词 ​ let ​ const ​ 变量名 >变量命名规范 ​ 英文 数字 _ $不要以数字开头 ​ 见名知意 ​…

深度学习之tensorboard可视化工具

(1)什么是tensorboard tensorboard是TensorFlow 的一个可视化工具包&#xff0c;提供机器学习实验所需的可视化和工具&#xff0c;该工具的功能如下&#xff1a; 跟踪和可视化指标&#xff0c;例如损失和精度可视化模型图&#xff08;操作和层&#xff09;查看权重、偏差或其…

【Java多线程学习4】volatile关键字及其作用

说说对于volatile关键字的理解&#xff0c;及的作用 概述 1、我们知道要想线程安全&#xff0c;就需要保证三大特性&#xff1a;原子性&#xff0c;有序性&#xff0c;可见性。 2、被volatile关键字修饰的变量&#xff0c;可以保证其可见性和有序性&#xff0c;但是volatile…

uniApp 对接安卓平板刷卡器, 读取串口数据

背景: 设备: 鸿合 电子班牌 刷卡对接 WS-B22CS, 安卓11; 需求: 将刷卡器的数据传递到自己的App中, 作为上下岗信息使用, 以完成业务; 对接方式: 1. 厂家技术首先推荐使用 接收自定义广播的方式来获取, 参考代码如下 对应到uniApp 中的实现如下 <template><view c…

python数据可视化Matplotlib

1.绘制简单的折线图 # -*- coding: utf-8 -*- import matplotlib.pyplot as pltinput_values [1, 2, 3, 4, 5] squares [1, 4, 9, 16, 25] plt.style.use(seaborn) fig, ax plt.subplots() ax.plot(input_values, squares, linewidth3) # 线条粗细# 设置图表标题并给坐标…

2023年第四届“华数杯”数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&#xff0…

less的使用

less的介绍&#xff1a; less使用 1、 less使用的第一种用法&#xff0c;起变量名&#xff0c;变量名区分大小写&#xff1a; 这里我们定义一个粉色变量 我想使用直接把变量拿过来就行 2、vscode使用插件&#xff0c;直接将Css文件转换less文件&#xff1a; 3、第二种用法&…

8.泛型

目录 1 基本使用 2 多个泛型 3 泛型约束 3.1 数组 3.2 extends约束 3.3 用泛型约束泛型 4 泛型接口 5 ts中的数组用的就是泛型 6 泛型类 7 常用泛型工具类型 7.1 让所有属性变为可选属性 Partial 7.2 将所有属性都变为只读属性 Readonly 7.3 从指定类…