[原创] SSH免密登录设置----原理详解

  首先介绍一下SSH:

  

  当我们用一台服务器登录另一台服务器可直接使用SSH协议进行登陆

//具体格式:
//        ssh  [用户名]@[IP]

ssh [email protected]192.168.33.12

  也可以直接远程传送文件到另一台服务器,具体格式如下:

//具体格式:
//            scp [文件名] [目标服务器用户名]@[目标服务器IP] : [目标复制位置]

scp test.txt [email protected]192.168.33.12:/home

  

  注意:以上操作方法存在弊端,每次操作都需要输入目标服务器的密码,不适合集群服务器的批量操作。所以一般我们会用SSH的第二种身份验证机制:密钥验证。验证流程如下图:

  即在源服务器上先生成一份公钥和一份密钥,将公钥复制到目标服务器,利用命令将公钥添加至目标服务器的授权列表(authorized_keys)。当有服务器带着公钥申请连接服务器时,目标服务器首先在authorized_keys中查找是否存在该公钥,如果存在则开始进行验证。首先生成一个随机字符串,利用对应公钥进行加密,然后返回给申请连接的服务器,申请连接服务器利用私钥进行解密,再将字符串返回给目标服务器完成验证,进行后续操作。

  首先在源服务器上生成公钥和密钥:

//具体格式:
//    其中  -t  [加密方式]
                ssh-keygen -t rsa
//默认会在 /root/.ssh/ 重生成公钥和密钥  id_rsa   id_rsa.pub

  如下图:

  接下来我们需要将源服务器生成的公钥拷贝到目标服务器中并添加至authorized_keys列表中,这两步可以使用一个简便命令进行执行:

//将公钥添加至目标服务器的authorized_keys列表中
//具体格式:
//            ssh-copy-id [目标服务器IP]
    ssh-copy-id 192.168.33.12

  截图如下:

  我们在目标服务器的 /root/.ssh 文件夹中查看授权列表authorized_keys发现原服务器的公钥已经添加进去:

  至此我们已经完成了SSH免密登录的设置,可以再源服务器上进行登录验证,已经不需要再输入密码:

  同样我们可以在目标服务器上进行同样的设置使两台服务器相互免密登录。

原文地址:https://www.cnblogs.com/wangdy0707/p/9080021.html

时间: 2024-10-07 05:41:25

[原创] SSH免密登录设置----原理详解的相关文章

多台服务器-SSH免密登录设置

在4台服务器-SSH免密登录设置,如以下4台服务器 master1 node001 node002 node003 我想在master1对4台服务器进行拉取或者分发任务或者是集群服务器的批量操作,但是每次都要输出密码,这个过程比较影响操作效率??? 以下给出解决方法---->设置密钥验证 密钥验证流程如图 原理: 即在源服务器上先生成一份公钥和一份密钥,将公钥复制到目标服务器,利用命令将公钥添加至目标服务器的授权列表(authorized_keys).当有服务器带着公钥申请连接服务器时,目标服务

SSH免密登录设置

分享/朱季谦 最近在搭建linux集群,做了SSH免密登录的设置,正好把过程记录一下: 一.用搭建好的两台虚拟机做演示,A机器:192.168.200.129,B机器:192.168.200.128 二.分别在两台机器上执行以下步骤: 1.使用root登录A服务器:su – root 2.在登录的A服务器上通过指定加密算法指令ssh-keygen -t rsa来生成秘钥,执行完该指令一直回车即可. 说明:(1)ssh-keygen –t rsa是指定加密的算法是rsa (2)(/root/.ss

Linux ssh 免密登录设置成功,却不生效

在本机上使用非root账户,生成ssh 密钥,然后执行ssh-copy-id -i /home/用户/.ssh/id_rsa.pub 远程用户@远程ip,本机提示已经ssh公钥添加到远程主机用户/.ssh下. 执行ssh 远程用户@远程IP登录却仍然需要输入密码.显然免密没生效. 排查各种问题,比如本机是否开启免密登录,用户.ssh权限等等,都没找到问题所在,切换到root用户下,查看root用户的.ssh文件,发现有生成公钥,将其干掉.然后载重新1,2步凑,ok了. 原文地址:http://b

(11)ssh免密登录配置

***在Linux命令行中登录到另一台虚拟机(需要用到ssh协议) Linux中默认有ssh的服务器端和客户端,客户端的名字就叫ssh 前提是当前使用的用户名在待连接的虚拟机中存在 格式:  ssh ip地址 exit 返回原来的机器(登录到另一台机器会进入一个新的会话,使用exit命令返回原来的会话) ***把本机器上的文件拷贝到另一台机器上去 scp 文件名 用户名(可以不是当前用户,表示以哪个用户的身份进行拷贝)@ip地址:拷贝的目标目录 上述过程需要人手动输入密码,不利于过程的自动化.因

linux上ssh免密登录原理及实现

因为我的服务器集群需要回收日志到中央进行统一处理,所以需要建立ssh互信关系实现免密登录.关于ssh的使用大家可能都很熟悉了,我们今天主要来讲下ssh连接和免密登录的原理. scp 传输文件 scp(secure copy)是linux系统下基于ssh登录进行安全的远程文件拷贝的命令. # 传递文件到远程 scp local_file remote_username@remote_ip:remote_file # 传递文件夹到远程 scp -r local_folder remote_usern

linux(十)配置ssh免密登录实现

知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业,并登入远端主机. 一.ssh远程登录 今天要和大家说的是,当我们一台客户机要远程登录到服务器的时候,输入密码才能登录成功. 过程流程图: 所以我们在想能不能我们不需要输入密码,直接使用ssh 用户名@服务器ip就可以登录呢? 二.ssh免密登录原理 看到这个图可能大家有一点蒙逼.我给大家解释一下.

Shell脚本实现SSH免密登录及批量配置管理

本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们通常还是工作在,几十台上百台服务器这样的环境,而使用ansible或者puppet这样的自动化运维工具则显得大材小用,并且最终的效果可能还不如几个小工具达到的效果好.像ssh免密登录在配合pssh这样的推送工具,在配合自动化配置脚本,可以说是即方便也使用.这一节将详细带大家以shell脚本的形式实现

ssh免密登录linux服务器

Ssh免密登录 sshd服务 sshd简介: SSH 密钥为登录 Linux 服务器提供了更好且安全的机制.运行 ssh-keygen 后,将会生成公私密钥对.你可以将公钥放置到任意服务器,从持有私钥的客户端连接到服务器的时,会用它来解锁.两者匹配时,系统无需密码就能解除锁定. 官方维护文档:https://www.ssh.com/ssh/ 参考文档:https://www.cnblogs.com/ioveNature/p/7919115.html https://www.cnblogs.com

idea集成gitlab使用ssh免密登录

网上有很多介绍ssh免密登录的文章,具体步骤如下: 1. 生成SSH Key ssh-keygen -t rsa -C "[email protected]"  默认会在相应路径下(/your_home_path)生成id_rsa和id_rsa.pub两个文件,此时终端会显示: Generating public/private rsa key pair.