iis服务器助手广告
返回顶部
首页 > 资讯 > 操作系统 >linux关于ssh免密登录、known_hosts文件
  • 929
分享到

linux关于ssh免密登录、known_hosts文件

linuxknown_hosts对称加密非对称加密ssh免密登录 2023-08-18 16:08:51 929人浏览 安东尼
摘要

1. 关于ssh SSH 是 Secure shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是目前广泛采用的安全登录协议,专为远程登录会话和其他网络服务提供安全性的协议,替代以前不安全的Telnet协议。利用 SSH 协

1. 关于ssh

SSH 是 Secure shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是目前广泛采用的安全登录协议,专为远程登录会话和其他网络服务提供安全性的协议,替代以前不安全的Telnet协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

scp、sftp等都是基于ssh协议来进行远程传输的。

2. 对称加密和非对称加密

  • 对称加密:例如AES,加密和解密使用同一个密钥,不安全,如果密钥丢失,加密的信息就会被窃取,并且可以篡改信息,重新加密;对于接收方来说,并不知道这串加密的信息是受信任的发来的还是黑客伪造的。

  • 非对称加密:例如RSA,加密和解密使用不同的密钥,存在一对密钥对,公钥和私钥,公钥可以发送给别人,私钥需要自己保存。常用的公钥加密,私钥解密,例如:小明要发送消息给小红,小红把自己的公钥给小明,小明利用小红的公钥加密发送给小红,小红再使用自己的私钥进行解密。即使小红的公钥被窃取,黑客没有小红的私钥也解密不了信息。

3. ssh免密登录原理

服务器A要免密登录服务器B,则要把服务器A的公钥存到服务器B的授权公钥文件中;先在服务器A上生成一对秘钥(ssh-keygen),然后将公钥拷贝到服务器B的authorized_keys文件中。

原理:

  • 服务器A向服务器B发送一个连接请求,信息包括服务器A此时登录的用户名、服务器A的ip以及要免密登录的服务器B的用户名;
  • 服务器B收到请求,会从服务器A要免密登录服务器B的用户名家目录下 authorized_keys 中查找是否有相同的服务器A用户名、服务器aip;
  • 如果有,服务器B会随机生成一个字符串,然后使用服务器A的公钥进行加密,再发送给服务器A;
  • 服务器A接到服务器B发来的信息后,会使用私钥进行解密,然后将解密后的字符串发送给服务器B;
  • 服务器B接到服务器A发来的信息后,会和之前生成的字符串进行比对,如果一致,则允许免密登录。

4. ssh免密登录配置

在进行配置之前需要先关闭防火墙,并且最好给服务器设置主机名,并配置 /etc/hosts 文件映射。

systemctl status firewalld.service # 查看防火墙状态systemctl stop firewalld.service # 关闭防火墙systemctl disable firewalld.service # 移除防火墙开机自启动

步骤:

  1. 假设A服务器需要免密登录B服务器,那么在A服务器执行命令:ssh-keygen -t rsa(默认就是RSA加密算法,可不用加-t rsa);密钥对生成过程会提示输入私钥加密密码,可以直接回车不使用密码保护。命令执行完成后会在~/.ssh目录下生成两个文件:id_rsa(私钥)和id_rsa.pub(公钥)
  2. 将公钥文件id_rsa.pub中的内容拷贝到B服务器的~/.ssh目录下的授权公钥文件authorized_keys中

5. ssh免密登录注意事项

首先,假设A服务器要免密登录B服务器,我们将A服务器通过ssh-keygen命令生成的公钥写进B服务器authorized_keys文件中。涉及以下注意事项:

A服务器生成的公钥如下:root@sangfor-node7 代表这是root用户生成的公钥

请添加图片描述

如果我们将其拷贝到B服务器/root/.ssh/authorized_keys文件中,那么A服务器就能以B服务器的root账号免密登录成功,也就是:ssh root@B服务器 可以免密登录成功;但是如果是以B服务器的其它账号进行登录,则无法免密,例如:ssh admin@B服务器 需要输入admin账号的密码才可以登录。

如果我们希望A服务器也能以B服务器的admin账号免密登录成功,那么还需要将A服务器的公钥拷贝到B服务器:/home/admin/.ssh/authorized_keys文件中(即admin用户的家目录下)。

另外,A服务器生成的公钥文件中包含 root@sangfor-node7 代表这是root用户生成的公钥;如果A服务器是以root账号去执行命令:ssh root@B服务器 可以免密登录成功;但是如果A服务器是以其它账号,例如wyf,去执行命令:ssh root@B服务器 则需要输入密码;因为B服务器/root/.ssh/authorized_keys文件中存储的是A服务器root用户的公钥,如果我们希望A服务器以wyf账号登录去执行命令:ssh root@B服务器 也可以免密登录成功;那么需要在A服务器切换成wyf账号,执行 ssh-keygen,那么生成的公钥文件位于 /home/wyf/.ssh/ 目录下,并且包含 wyf@sangfor-node7 ,代表这是wyf用户的公钥。再把这个公钥写入B服务器authorized_keys文件中即可。

如下:

请添加图片描述
请添加图片描述

最后,还需要注意域名问题,由于A服务器配置了主机名为 sangfor-node7,因此生成的公钥文件包含主机名,如:root@sangfor-node7,但是B服务器并不知道这个主机名代表哪个ip地址,因此需要在B服务器的 /etc/hosts 文件中配置 sangfor-node7 主机名和ip的映射。

6. GitHub配置本机ssh公钥步骤及原理

如果我们要把本地代码以ssh方式push到github上,为避免每次push都需要输入github账号和密码,则需要配置本机免密登录github,免密登录原理和A服务器免密登录B服务器一样。

配置步骤参考文档:https://blog.csdn.net/wenfu814/article/details/120625844

7. known_hosts文件

A通过ssh首次连接到B,B会将公钥1(host key)传递给A,A将公钥1存入known_hosts文件中,以后A再连接B时,B依然会传递给A一个公钥2,OpenSSH会核对公钥,通过对比公钥1与公钥2 是否相同来进行简单的验证,如果公钥不同,OpenSSH会发出警告,并且需要用户交互式的输入yes/no, 避免受到DNS Hijack之类的攻击;如果公钥相同,则不会发出警告。

例如:
A服务器首次ssh登录B服务器,由于A服务器的known_hosts文件中没有B服务器的公钥,因此控制台会发出警告,并且需要用户输入yes/no

请添加图片描述

当我们输入yes之后,A服务器的known_hosts文件会增加一条记录(B服务器的公钥);再输入B服务器的密码,ssh登录成功

请添加图片描述

当A服务器再次ssh登录B服务器,B依然会传递给A一个公钥,OpenSSH会核对公钥,将该公钥和A服务器known_hosts文件保存的B服务器的公钥进行对比,由于相同,则不会发出警告,直接让用户输入密码

请添加图片描述

如果我们不希望在进行ssh登录时进行公钥检查,可以加上 "StrictHosTKEyChecking no" 跳过公钥检查,就不需要用户手动输入yes/no(这在一些自动化场景经常使用到)

请添加图片描述

备注:如果A通过ssh登陆B时提示 Host key verification failed.;原因是A的known_hosts文件中记录的B的公钥1与连接时B传过来的公钥2不匹配。
解决方法:删除A的known_hosts文件中记录的B的公钥,当再次ssh登录B时,重新写入B服务器最新的公钥即可。

来源地址:https://blog.csdn.net/can_chen/article/details/128178370

--结束END--

本文标题: linux关于ssh免密登录、known_hosts文件

本文链接: http://www.lsjlt.com/news/374320.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux关于ssh免密登录、known_hosts文件
    1. 关于ssh SSH 是 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是目前广泛采用的安全登录协议,专为远程登录会话和其他网络服务提供安全性的协议,替代以前不安全的Telnet协议。利用 SSH 协...
    99+
    2023-08-18
    linux known_hosts 对称加密 非对称加密 ssh免密登录
  • SSH 免密登录
    SSH 免密登录是指使用 SSH 协议连接远程主机时不需要输入密码就可以直接登录。要实现 SSH 免密登录,需要在本地主机上生成一对密钥(公钥和私钥),然后将公钥拷贝到远程主机上。 下面是具体步骤: 在本地主机上打开终端,运行以下命...
    99+
    2023-09-03
    ssh linux 服务器 运维 centos
  • VSCode——SSH免密登录
    文章目录 本地PC端(一般为Windows)1. 检查自己是否已经生成公钥2. 配置VScode的SSH config 远程服务器端1. 服务器新建授权文件2. 赋权限3. 重启远程服务...
    99+
    2023-09-07
    ssh vscode 服务器
  • Linux下如何配置ssh免密登录
    这篇文章主要介绍了Linux下如何配置ssh免密登录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。SSH 是 Linux 系统的登录工具,现在广泛用于服务器登录和各种加密通信...
    99+
    2023-06-27
  • Ubuntu开启SSH免密登录
    Ubuntu开启SSH免密登录 要实现SSH免密登录,首先需要准备一组公钥和私钥。将公钥放到服务器上,将私钥放到客户机上。当客户机连接服务器时,服务器会根据自身的公钥校验客户机的私钥,如...
    99+
    2023-09-14
    ubuntu ssh 服务器
  • docker ssh秘钥免密登录
    有一台跳板机,已经实现了免密登录后端服务器。但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器。虽然可以在容器中手动做一下免密登录,但是容器重启之后,之前做的设置都消失了。是否可以在生成新的django镜像时,也能...
    99+
    2023-01-31
    docker ssh 秘钥免密
  • linux免密登录ssh失败如何解决
    要在Linux上实现免密登录SSH,需要完成以下步骤:1. 生成SSH密钥对:在本地机器上执行以下命令生成SSH密钥对:```ssh...
    99+
    2023-09-09
    linux ssh
  • Linux系统中如何设置SSH免密登录
    Linux系统中如何设置SSH免密登录,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ssh是由IETF网络小组编写的专门远程登录会话和其他网络服务提供安全性的协议,目前大多数系...
    99+
    2023-06-28
  • linux远程登录ssh免密码怎么配置
    这篇“linux远程登录ssh免密码怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2024-04-02
  • linux中ssh如何使用rsa免密码登录
    这篇文章主要讲解了“linux中ssh如何使用rsa免密码登录”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中ssh如何使用rsa免密码登录”吧!A为本地主机(即用于控制其他主机的...
    99+
    2023-06-13
  • ssh远程免密登录服务器
    一、在本地生成密钥 ## 生成的私钥保存在".ssh/id_rsa", 公钥在".ssh/id_rsa.pub"ssh-keygen 二、在服务器创建相应文件 1、创建.ssh目录并设置权限 mkdir ~/.sshchmod 700 ~/...
    99+
    2023-09-12
    ssh
  • 使用私钥登录 SSH 服务器(免密登录)
    SSH(Secure Shell)是一种用于远程登录和安全数据传输的协议。通过SSH,您可以在不安全的网络上安全地连接到远程服务器,并进行加密的数据传输。SSH支持多种身份验证方式,其中之一是使用SSH密钥对进行免密码登录。以下是使用私钥登...
    99+
    2023-12-23
    ssh 服务器 运维
  • Linux中SSH免密登陆的方法
    这篇文章主要介绍“Linux中SSH免密登陆的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux中SSH免密登陆的方法”文章能帮助大家解决问题。Secure Shell ( SSH )是一...
    99+
    2023-06-27
  • ssh免密登录在Linux服务器之间的设置
    Linux服务器之间是设置ssh免密登录的实验步骤环境需求:服务器1:192.168.174.133服务器2:192.168.174.134两台服务器都有安装ssh服务和openssl-clients在本地生成本机的公钥和私钥,一路回车,默...
    99+
    2023-06-05
  • Linux 中启用 SSH 密码登录
    Linux 中启用 SSH 密码登录 文章目录 Linux 中启用 SSH 密码登录1、更改配置文件2、设置登录密码3、完成 1、更改配置文件 首先使用 管理员 权限打开/etc/ssh/sshd_config文件。 ...
    99+
    2023-08-20
    linux ssh 服务器
  • Linux创建SSH密钥、设置密钥登录、密钥登录原理
    Linux有2种登录方式: 使用用户名加密码的登录方式;密钥登录; 密钥登录: SSH登录是用的RSA非对称加密的,SSH密钥登录的时候可使用RSA密钥登录,SSH有专门创建SSH密钥的...
    99+
    2023-09-03
    linux ssh 服务器
  • Hadoop中怎么配置SSH免密码登录
    这篇文章主要介绍“Hadoop中怎么配置SSH免密码登录”,在日常操作中,相信很多人在Hadoop中怎么配置SSH免密码登录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hadoop中怎么配置SSH免密码登录...
    99+
    2023-06-03
  • VSCode远程SSH免密登录配置实现
    最近更新了VS Code之后,发现Remote-ssh拓展里的端口转发功能没了,很伤心,在探索的同时,顺手配置了一下VS Code ssh免密登录,以省去每次连接远程文件夹时输入两次...
    99+
    2024-04-02
  • SSH远程免密登录的两种方式
    SSH远程免密登录的两种方式 一、ssh远程登录操作1.先ping测试下看看网络是否通畅2.ssh 192.168.150.148 二、ssh免密登录方式一1.生成公钥、私钥2.拷贝公钥到目标服务器3.测试ssh免密登录 三...
    99+
    2023-08-25
    ssh 服务器 网络
  • SSH工作原理&Ubuntu20.04安装并配置SSH&设置SSH免密登录
    目录 一、SSH的介绍(服务器端,客户端) 1、SSH(远程连接工具)连接原理: 2、SSH的安全机制 3、两种级别的验证方法(登录方法) 二、ssh的安装与启动 1、安装 2、启动服务器的SSH服务 三、SSH客户端 1、前置知识 2、口...
    99+
    2023-10-12
    ssh 服务器 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作