SSH服务登陆验证
ssh服务登陆验证有两种方式:
1.基于用户名和密码
2.基于密钥
基于用户名和密码验证过程:
1)客户端想ssh服务器发起请求,服务器会把自己的公钥发送给客户端,
2)客户端用服务器的公钥加密自己的密码,并发送给服务器
3)服务器用自己的私钥解密得到客户端的密码并验证,如果密码正确则登陆成功.
基于秘钥验证过程:
1)客户端生成一对秘钥
2)客户端把自己的公钥传送给服务器
3)客户端发送一个连接请求,信息包括ip和用户名
4)服务器去authorized_keys文件中查找相应记录,如果有,就生成一个随机字符串
5)服务器使用客户端的公钥把随机字符串加密后发送给客户端
6)客户端使用私钥解密,再把得到的字符串发给服务器
7)服务器对比此字符串是否与自己生成的字符串一致,如果一致就允许登陆
基于秘钥认证示例:
两台主机之间:
1)客户端生成一对秘钥
命令格式
ssh-keygen -t rsa [-P ''] [-f "~/.ssh/id_rsa"]
-p 口令,可为空
-f 指定秘钥存放路径
也可以所有参数省略直接执行ssh-keygen
]# ssh-keygen

执行后三次回车.会生成未加密的私钥/root/.ssh/id_rsa和公钥/root/.ssh/id_rsa.pub
2)把公钥文件传输至远程服务器对应用户的家目录,如果写错成私钥文件名,不用担心,传过去的依然是公钥.
命令格式
ssh-copy-id [-i [identity_file]] [user@]host
]# ssh-copy-id -i .ssh/id_rsa.pub root@172.18.7.77
root@172.18.7.77's password:
Now try logging into the machine, with "ssh 'root@172.18.7.77'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
3)在服务器端查看/root/.ssh/
]# cat /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAusWy2QOYUC5kuwG+lNO7mWqWO/lvyqhAB1jiEcpAlns//kxVkifRtfDrA0+u7Pi+/eenW/6g1ZA6iP1muyprNXa+F84QjAaIBVlJuizKzF1iVFDOULdbyVRkKxx5Z8rlmG8WPeDl/1q9yIRrjUD84am8FOHsT/tzFLbEoeKL8vd/F6V1FPqlI+DLO28LgQ/b1Q21lJRk/XB6YvmFain9qwlzB0VF4vKVAhwVRmzA6hCxS7zohIJe8Y+1pC654mKwERtaM6PBUYPr/l0iznfU5Dxsvr4d8hp9xe2tDkyi7xkS0wd0DOE7SGbgwqUKxh7iuA+qBdln2h8dtC0dqGPlaw== root@centos6.qt
说明已经传输成功
4)测试
在客户端直接执行
]# ssh 172.18.7.77
Last login: Thu Jan 4 21:45:22 2018 from 172.18.7.61
即可免密码直接登陆,不输用户名默认以当前登陆用户身份尝试登陆.
使用Xshell或SecureCRT之类的客户端软件实现基于秘钥登陆的原理与上文相同,只要通过客户端软件生成一个公钥,并复制到服务器中,将公钥内容追加到 ~/.ssh/authorized_keys中
之后新建一个以秘钥方式登陆的会话,则可以免密码直接登陆.
SSH服务登陆验证的更多相关文章
- 通过SSH服务登陆linux服务器(版本RHEL7)
通过SSH服务登陆linux服务器(版本RHEL7) SSH服务概述:是一种能够以安全的方式提供远程登陆的协议,也是目前远程管理linux系统的首选方式.在此之前,我们一般使用FTP或者telnet来 ...
- 记一次 java 连接 linux ssh服务 权限验证失败的原因和解决过程
下面的问题我是通过之前的ssh测试类找出原因的,因为我的测试类跑通了,但是程序跑不通,看了一下源码发现还有一处没有进行解密,所以才会权限验证失败. // 出现权限验证失败的原因就在这里,因为老板要求对 ...
- docker中安装ssh服务
系统:Debian Docker 目标:在docker(debian系统)中安装ssh服务,实现远程登陆和控制docker 步骤: 初始状态:通过docker pull debian得到的一个debi ...
- 如何搭建ssh服务?
为了日后便于查询,本文所涉及到的所有命令集合如下: rpm -qa | grep openssh #查看是否安装了openssh软件 service sshd status #服务端的ssh状态 if ...
- SSH登陆验证绕过漏洞(cve-2018-10933)
名称: SSH登陆验证绕过漏洞 CVE-ID: cve-2018-10933 EXPLOIT-DB: https://www.exploit-db.com/exploits/45638/ 平台: Li ...
- [SSH服务]——一个SSH无密码登陆实验
实验拓扑图 实验描述 机房内有两台服务器: (1)B服务器10.0.10.158,充当Web服务器,有普通用户user_00 (2)C服务器10.0.10.191,充当Mysql服务器,有普通用户us ...
- 为Ubuntu配置ssh服务 方便远程登陆
Ubuntu系统必须开启ssh服务后,XP或者其他的主机才可以远程登陆到Ubuntu系统. 1,安装软件包,执行sudo apt-get install openssh-server Ubuntu缺省 ...
- ssh服务、密钥登陆配置
环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...
- Linux服务器开启ssh服务,实现ssh远程登陆!
最近在学linux,使用ssh远程登陆linux,记录下来! 首先进入/etc目录下,/etc目录存放的是一些配置文件,比如passwd等配置文件,要想使用ssh远程登陆,需要配置/etc/ssh/s ...
随机推荐
- Hibernate 查询语句基本用法
转发: http://459104018-qq-com.iteye.com/blog/720538
- Rest分享
分享提纲引言:微服务, 漂亮小姑娘,帅气小伙 这老头是个奇人,特别擅长抽象归纳和制造概念.特别是微服务这种新生的名词,都有一个特点:一解释就懂,一问就不知,一讨论就打架. REST是什么,是一个模式, ...
- 升级Ubuntu 到14.04 64位 后eclipse出现闪退现象
升级Ubuntu 到14.04 64位 后eclipse出现闪退现象,搜了各种方法,最后解决问题 解决方法: 在所装的eclipse的目录下有个configuration/config.ini 文件 ...
- SQL Serever学习14——存储过程和触发器
存储过程 在数据库中很多查询都是大同小异,编写他们费时费力,将他们保存起来,以后执行就很方便了,把SQL语句“封装”起来. 存储过程的概念 存储过程是一组SQL语句集,经过编译存储,可以”一次编译,多 ...
- 从CentOS官网下载系统镜像详细教程
很多新手小白鼠想学习CentOS系统,但是不知道镜像去哪里搞,随便去个第三方发现要么要注册,要么各种广告病毒,或者好不容易找到官网,点进去一看却一脸懵逼,不仅全英文,有些专业术语也不懂啊,不要担心 ...
- VS2013漂亮字体
使用字体:Fixedsys Excelsior 3.011.首先下载字体:http://www.fixedsysexcelsior.com/ 2.安装字体:控制面板 -> 字体,复制下载的文件进 ...
- 字符串匹配问题(lfyzoj)
问题描述 字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配.如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如.输入: [()] 输 ...
- 记一次C#面试
最近参加了工作后的第一次面试,虽然最终没谈成,但是收获还是不少,不管是技术还是面试经验还是得多多积累呀. 这一次面试与在学校时候参加过的面试区别还是挺大的.校园招聘的面试问的问题似乎都比较具体,直接针 ...
- CODEFORCES 429B 动态规划
http://codeforces.com/problemset/problem/429/B 可以参考这篇文章: http://blog.csdn.net/pure_lady/article/deta ...
- Redis概述与安装
一.什么是Redis 由c语言编写的,以键值对的形式存储的数据库. 缓存技术(驻留在内存中) key:value 支持5种数据类型: String Hash(哈希表) list ...