1 转自

http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

2 ssh远程登陆的原理

普通用户远程登陆

ssh jason@host

root用户远程登陆

ssh root@host

如果本地用户名和远程用户名相同,可以直接ssh  host

当openssh服务器收到远程登陆请求的时候,它会把自己的公钥发送给发起请求的机器,发起请求的机器用该公钥对该用户密码进行加密,然后发送给openssh服务器,openssh服务器用自己的私钥解密,然后比对密码,如果一样,那么就允许该用户远程登陆,否则登陆失败。

普通用户直接登录即可,但是root用户需要配置一下:

修改/etc/ssh/sshd_config的PermitRootLogin为yes,然后重启一下sshd服务。

3 中间人攻击

这个远程登陆过程看起来高明,但是存在一个缺陷,那就是中间人攻击。

如果登陆请求被中间人截获,它可以模拟服务器发一个自己的公钥过来,那么密码就被它窃取了。

避免中间人攻击的方法,官方服务器公示自己的公钥,然后在用户第一次登陆的时候,会有提示:

ECDSA key fingerprint is SHA256:e27/UCrQmDnO06Fc7gP/2ixI5lkFaG9hNXtcXqRmmq8.
Are you sure you want to continue connecting (yes/no)? yes
如果对上了,那么就说明可以安全的用这个公钥加密密码了,因为就算被中间人窃取了,他也解密不了,因为他没有私钥。

4 无秘钥ssh登陆的原理

想要登陆方也生成一对秘钥,他将自己的公钥放到被登陆的服务器上,然后发起登陆请求,被登陆的服务器发送一段随机字符串给他,他用自己的私钥加密,然后回复给被登陆服务器,被登陆服务器用公钥解密,如果是正确的,就允许登陆。由于只有可信的用户才能放公钥到被登陆的服务器,因此整个过程是可信的。

命令:

生成公钥,ssh-keygen

向被登陆机器发送公钥,ssh-copy-id user@host

ssh原理【转】的更多相关文章

  1. SSH原理与运用

    SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于 ...

  2. SSH原理与运用(二):远程操作与端口转发

    SSH原理与运用(二):远程操作与端口转发 作者:阮一峰 (Image credit: Tony Narlock) 七.远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作. 上一 ...

  3. SSH原理与运用(一)和(二):远程登录 RSA算法原理(一)和(二)

    SSH原理与运用(一)和(二):远程登录  RSA算法原理(一)和(二) http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html ht ...

  4. SSH原理与运用一:远程登录(转)

    原文:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 作者: 阮一峰 SSH是每一台Linux电脑的标准配置. 随着Linux ...

  5. ssh原理[转]

    SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于 ...

  6. Hadoop第一式:配置Linux环境之免密配置及SSH原理

    一.配置SSH免密登录 进入/.ssh目录,执行密钥生成指令 ssh-keygen -t rsa (rsa为默认加密格式) 然后会出现四个提示,让你选择密钥保存路径.指纹.拍照啥的,不用管它直接回车过 ...

  7. ssh原理图解

    SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式.在此之前,远程登录一般常用FTP和Telnet,但是它们以明文的形式在网络中传输账 ...

  8. 图解SSH原理及两种登录方法

    SSH(Secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登录以及安全的数据传送,其保证数据安全的原理是非对称加密. 传统的对称加密使用的是一套秘钥,数据的加密以及解密用的都是这 ...

  9. SSH原理与运用(一):远程登录(转)

      作者: 阮一峰 日期: 2011年12月21日 SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很 ...

  10. 图解SSH原理

    1. 初见SSH SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务. SSH仅仅是一协议标准,其具体的实现有很多,既有开源实现的OpenSSH,也有商业实现方案.使用范围最广泛的当然 ...

随机推荐

  1. 【Kubernetes】Deployment控制器模型

    在Kubernetes中,Deployment是最基本的控制器对象 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deploym ...

  2. [BZOJ1582] [Usaco2009 Hol]Holiday Painting 节日画画(线段树)

    传送门 线段树区间修改傻题 #include <cstdio> #include <cstring> #include <iostream> #define N 5 ...

  3. 算法复习——半平面交(bzoj2618凸多边形)

    讲解: 这里套用wuvin神犇的ppt,附上友情链接:http://blog.leanote.com/wuvin 半平面交: 算法流程: 注意事项: 例题: Description 逆时针给出n个凸多 ...

  4. oracle的split函数

    PL/SQL 中没有split函数,需要自己写. 代码: create or replace type type_split as table of varchar2(50);  --创建一个 typ ...

  5. Spring Boot 集成spring security4

    项目GitHub地址 : https://github.com/FrameReserve/TrainingBoot Spring Boot (三)集成spring security,标记地址: htt ...

  6. 圆桌聚餐(cogs 729)

    «问题描述:假设有来自m 个不同单位的代表参加一次国际会议.每个单位的代表数分别为ri(i=1,2,3...m), .会议餐厅共有n张餐桌,每张餐桌可容纳c i(i=1,2...n) 个代表就餐.为了 ...

  7. JSP表单提交中文乱码

    简要笔记:由于jsp默认表单提交编码方式是:ISO-8859-1,而我们需要的是utf-8或者是gbk码,故需要转化. 具体方法是:在表单处理文件中,将获取到的变量进行转换. String userN ...

  8. windows下模拟linux命令的工具 xshell

    windows下模拟linux命令的工具 xshell

  9. nginx的配置文件 【nginx.conf】

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  10. CODEVS 1245 最小的N个和 堆+排序

    原题链接 http://codevs.cn/problem/1245/ 题目描述 Description 有两个长度为 N 的序列 A 和 B,在 A 和 B 中各任取一个数可以得到 N^2 个和,求 ...