目录

1、公私钥简介与原理

公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是:

1) 持有公钥的一方(甲)在收到持有私钥的一方(乙)的请求时,甲会在自己的公钥列表中查找是否有乙的公钥,如果有则使用一个随机字串使用公钥加密并发送给乙。

2) 乙收到加密的字串使用自己的私钥进行解密,并将解密后的字串发送给甲。

3) 甲接收到乙发送来的字串与自己的字串进行对比,如过通过则验证通过,否则验证失败。

非对称加密算法不能使用相同的密钥进行解密,也就是说公钥加密的只能使用私钥进行解密。

2、使用密钥进行ssh免密登录

ssh使用私钥登录大致步骤就是:主机A(客户端)创建公钥私钥,并将公钥复制到主机B(被登陆机)的指定用户下,然后主机A使用保存私钥的用户登录到主机B对应保存公钥的用户。

(1) 实验环境

两台主机:

1) 主机A(客户机):192.168.187.137

2) 主机B(被登陆机):192.168.187.143

(2) 实验开始

在需要免密登陆的主机(主机A)下生成公钥和私钥

# ssh-keygen -t rsa ##-t rsa可以省略,默认就是生成rsa类型的密钥

说明:命令执行后会有提示,输入三次回车即可,执行完成后会在当前用户的.ssh目录下生成两个文件:id_rsa、id_rsa.pub文件,前者时私钥文件,后者是公钥文件(拷贝到其他主机只需要拷贝这个文件的内容)

将公钥复制到被登陆的主机上的 ~/.ssh/authorized_keys 文件中

拷贝公钥有两种方法,其原理都相同:

方式一:使用 ssh-copy-id 直接拷贝

使用 ssh-copy-id 进行拷贝公钥非常方便,只需要指定目标主机和目标主机的用户即可。

# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.187.142

执行这条命令后会自动将登录主机的公钥文件内容追加至目标主机中指定用户(root).ssh目录下的authorized_keys文件中。这个过程是全自动的,非常方便。

方法二:自己创建文件进行拷贝

1) 在登录主机(客户机)上创建authorized_keys文件并将公钥追加到该文件。

先cd到登录机使用的用户下的 .ssh 目录,方便操作

# cat id_rsa.pub >> authorized_keys

# chmod authorized_keys ##修改文件权限为600,该文件有规定如果属组其他人出现可写则文件就不会生效

2) 在被登录机的指定用户家目录下创建 .ssh 目录(这里在root用户下创建,因为要使用密钥登陆到root用户)

# mkdir .ssh

# chmod .ssh ##将目录权限改为700该目录的权限必须是700才有效

3) 将登录机创建的authorized_keys文件拷贝到被登录机,使用scp

# scp authorized_keys root@192.168.187.142:/root/.ssh/

authorized_keys % .4KB/s :

登录

使用主机A乙root用户身份登陆到主机B

# ssh root@192.168.187.142

Last login: Wed Feb :: from 192.168.187.137

首次登录将弹出保存信息,输入yes即可,此时已经实现了免密的密钥登陆。

注意事项和说明

上例只能实现主机A免密登陆到主机B的root用户,如果想让主机B也免密登录到主机A,创建密钥和拷贝步骤相同。

密钥登陆的方式只能登录被登录机中 .ssh 目录下有对应公钥的用户,如果想让所有用户都可以被登录则需要将authorized_keys文件的内容追加到其他用户的 ~/.ssh/authorized_keys 文件中。

如果使用自己创建的authorized_keys文件进行复制公钥则要严格设置权限,权限不正确会导致文件无法使用,也就无法进行密钥验证。

3、 ssh的两种登陆方式介绍

(1) 口令验证登录

(2) 密钥验证登录

密钥验证的前提需要登陆主机生成一对密钥(公钥和私钥),并将公钥放置在服务器上。

4、 总结

ssh密钥登录可以实现免密登录,免密登陆有很多用途:例如scp免认证、rsync备份免交互等一切使用ssh认证的地方均可以免交互,也就实现了自动化。

密钥认证的大概步骤

1) 客户端(登录主机)生成一对密钥:#  ssh-keygen

2) 将客户机的公钥复制到服务端(被登陆主机)要登录的用户的 ~/.ssh/authorized_keys 文件中:#  ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.187.142

注意:如果使用自己复制的方法,一定要注意.ssh目录和authorized_keys文件的权限,前者是700,后者是600

3) 使用客户机ssh连接服务端或者使用ssh协议认证的程序即可实现免密,免交互

注意:要想两端登录同时免密,就在主机B(被登陆机)也创建密钥然后将公钥拷贝到主机即可。

个人公众号(linuxjsz)

专注IT技术、知识分享,面试资源共享、讲解

只做全网最比心的公众号,欢迎你的关注!

linux如何配置双机SSH信任然后双向免密码登陆 www.111cn.net 更新:2015-01-14 编辑:edit02_lz 来源:转载 有时为了方便管理多台Linux主机,想实现双机之间信任 ...

[Linux] ssh秘钥对免密码登陆

准备两台linux服务器 a和b , 在a上使用ssh命令登陆b服务器 , 并且不用 输入密码 1.在a服务器上,比如是root用户 ,进去/root/.ssh目录 ,没有就创建, 就是进入家目录的. ...

Jenkins进阶系列之——09配置Linux系统ssh免密码登陆

ssh认证的完整描述:https://www.ibm.com/developerworks/cn/linux/security/openssh/part1/ 说明:点我去查看 今天我们只说生成ssh的 ...

linux centOS服务器部署ssh,免密码登陆linux

登陆centos,切换用户,切换到你要免密码登陆的用户,进入到家目录 2 创建钥匙, [xun@jzlinux ~]$ ssh-keygen -t rsa Generating public/priv ...

配置ssh连接会话复用免密码登录

我们经常使用ssh连接远程主机,为了方便,避免每次登录输入密码,通常使用密钥登录.如果没有设置密钥, 则需要使用密码登录了,若每次都输入密码则十分繁琐.我们可以设置ssh连接会话复用,则登录成功后,会 ...

hadoop搭建杂记:Linux下ssh免密码登陆

关于ssh免密码登陆的问题 关于ssh免密码登陆的问题 linux下可以用ssh-keygen来生成公钥/私钥对 ①生成id_rsa和id_rsa.pub公钥/私钥对,自动在~/.ssh下生成文件(亦 ...

实现一台Linux电脑连接另一台Linux(SSH实现linux之间的免密码登陆)

怎么实现一台Linux电脑连接另一台Linux电脑? 首先查看是否安装ssh服务:systemctl status sshd.service 启动服务:systemctl start sshd.ser ...

ssh keygen命令实现免密码通信(git库获取操作权限:开发人员添加到git库中,获取操作权限)

先看两个机器实现免密码登陆通讯: 假设 A 为客户机器,B为目标机: 要达到的目的: A机器ssh登录B机器无需输入密码: 加密方式选 rsa|dsa均可以,默认dsa 做法: 1.登录A机器 2.s ...

ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs

ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs 第一部分:使用ssh key 实现服务器间的免密码交互登陆 步骤1: 安装openssh-clients [root@001 ...

随机推荐

IOS网络第七天WebView-03js中调用webView中的代码

*********** #import "HMViewController.h" @interface HMViewController ()

Nginx 笔记与总结(7)Location:正则匹配

在 /usr/local/nginx/conf/nginx.conf 的默认 server 段中,保留默认的 location 信息(之前测试的 location 配置删除): location / ...

BW增强数据源的两种方法

BW增强数据源的两种方法 2009-04-01, by SAPBI 前言:我们经常会遇到系统标准的数据源,或者我们自建的数据源无法满足要求的情况,这个时候在数据源中添加几个相关的字段,可能就能满足我们 ...

使用iphone5修剪视频的方法

iphone5有很高的视频拍摄质量,这人很多业余爱好者也加入了视频短片的拍摄当中.在拍摄视频的过程中,为了能够捕捉到精彩瞬间,常常会提前拍摄,并延迟结束拍摄,这样就给视频增加了很多无意义的片段.这时, ...

Python 信号量

信号的概念 信号(signal)--     进程之间通讯的方式,是一种软件中断.一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号. 几个常用信号: SIGINT     终止进程  中断进 ...

ubuntu_scrapy 安装

1:install pip python-dev    sudo apt-get install python-dev    sudo apt-get install libevent-dev     ...

Liniux系统下目录的权限意义

访问者及其基本权限 Linux系统内的文件访问者有三种身份,分别是: a) 文件和文件目录的所有者: u---User(所有权);b) 文件和文件目录的所有者所在的组的用户: g---Group;c) ...

select 训练

--1.查询"c001"课程比"c002"课程成绩高的所有学生的学号:SELECT b.sno FROM (SELECT * FROM sc WHERE cno ...

蛋疼zipline安装

比安装zipline更让人蛋疼的是,网上的教程没有一个是TM对的,真的是忍不住要吐血. 真的是一步一坑,一步一坑 安装环境: Windows7旗舰版,64位系统 python 版本3.5.3 我没有用 ...

asp.net --> 初识WCF

对于刚开始接触wcf的同志,可以有效的理解wcf的使用场景. 引用该文章(点击查看),简单的介绍wcf的使用.另一篇文章(点击查看),和上述文章内容差不多.

linux系统密码正则,Linux密钥登录原理和ssh使用密钥实现免密码登陆相关推荐

  1. Linux系统下Qt项目实战(原神模拟器)

    原神模拟器 <原神>是由上海米哈游网络科技股份有限公司制作发行的一款开放世界冒险游戏.         <原神>整体的玩法架构可圈可点,基于行业成熟设计经验打造的内容十分惊艳, ...

  2. 连接linux系统的mysql,Linux系统MySQL开启远程连接

    1.远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库.登陆数据库.mysql -uroot -p(密码). 2.创建用户用来远程连接 GRANT ALL PRIVILEGES ...

  3. Linux系统之部署Linux管理面板1Panel

    Linux系统之部署Linux管理面板1Panel 一.1Panel介绍 1.1Panel简介 2.1Panel特点 二.本地环境规划 1.本此实践目的 2.本地环境规划 三.检查本地环境 1.检查操 ...

  4. imx6ull移植Linux系统第二篇——Linux内核的移植

    imx6ull移植Linux系统第二篇--Linux内核的移植 花了大概两周的时间,把Linux的移植认真学了一遍,期间踩了不少坑,花费了不少时间去解决各种奇奇怪怪的问题,最终完成了uboot.系统镜 ...

  5. Alpine linux 小内存版,Alpine Linux系统-Alpine Linux系统【轻量级Linux】下载v3.11.0 最新版-西西软件下载...

    Alpine Linux系统[轻量级Linux],Alpine Linux其实就是一个清凉版的Linux系统,通过牺牲一些不常用的功能和特性来达到更加轻巧的体积以及更快的响应速度.Alpine Lin ...

  6. linux系统清理内存,Linux实验室:五个清理磁盘空间小妙招

    1删除安装包:清空系统APT缓存 玩儿电脑最怕的就是卡慢,那么电脑卡慢应该怎么解决呢?对于windows系统来说,你可能有各种免费的杀毒软件.全家桶帮你清空系统空间,那么Linux系统怎么办?今天笔者 ...

  7. linux系统的笔记本,Linux:开源的免费操作系统_笔记本电脑_笔记本评测-中关村在线...

    ■linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议 ...

  8. ubuntu的SSH的安装和免密码登陆

    2019独角兽企业重金招聘Python工程师标准>>> 1.安装SSH $ sudo apt-get install ssh$ sudo apt-get install rsync ...

  9. 实现SSH密钥登陆Linux系统的方法(Linux公私钥生成)

    密钥对实现思路 秘钥对配置文件 一,系统有秘钥对要实现秘钥登录的方式: 1,确认Linux系统有免密登录文件 SSH免密登陆设置 # cd /root/.ssh/ #ll authorized_key ...

最新文章

  1. Android分级部门选择界面(一)
  2. python3最新版本-Python3第三方组件最新版本追踪实现
  3. Ubuntu 16.04源码编译安装Apache 2.4.25教程
  4. Android 访问本地 HTML
  5. ibatis Parameter index out of range (1 number of parameters, which is 0)
  6. 2003 cant connect to MySQL server on 'XXX.XXX.XXX.XXX'
  7. php 修改文件访问时间,PHP中获取文件创建日期、修改日期、访问时间的方法
  8. ASP与數据庫,文本文件鏈接精髓
  9. 更改linux主机名称
  10. 制作一个小型linux
  11. 当我们谈论深度学习时,我们在谈论什么?
  12. Collection与Map
  13. 《基于运算放大器和模拟集成电路的电路设计》PDF云盘资源分享
  14. jdk8下载及安装(Windows10)
  15. vue姓名动态输入三种方式、前端密码加密
  16. 手把手带你撸一个校园APP(一):项目简介
  17. 电脑安装完软件打不开怎么办
  18. c语言isfinite_visual-c-std :: isfinite在MSVC上
  19. 尚硅谷大数据Hadoop教程(Hadoop 3.x)P46遇到的问题
  20. 常用转义字符例如amp的含义

热门文章

  1. 解读文献(五)------基于阻抗控制
  2. 深信服“监控员工跳槽倾向”引争议,律师称未告知员工涉嫌违法
  3. 如何高效地阅读论文:三遍阅读法
  4. 【pytorch】时间序列预测 —— 同时预测多个分位点
  5. python locust学习笔记
  6. 计算机计算乘除法的原理
  7. 如何打开docx格式的文件?
  8. PHP下处理HTTP--json--xml信息
  9. linux 安装软件出现:“E:无法定位软件包”
  10. Windows软件推荐