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. EasyUI 动态更新列

    function UpdateRow() { var rows = $('#tbpmgridList').datagrid('getChecked'); var productid = ''; for ...

  2. iossharesdk微信登录出错

    只用下面的初始化就行了 //    //添加微信应用 注册网址 http://open.weixin.qq.com //    [ShareSDK connectWeChatWithAppId:mod ...

  3. 如何解决 错误code signing is required for product type 'xxxxx' in SDK 'iOS 8.2'

    如何解决 错误code signing is required for product type 'xxxxx' in SDK 'iOS 8.2' 大家在做真机调试的时候,或许会遇到这样的问题,那如何 ...

  4. 【Openjudge】岛屿(并查集)

    题目链接 此题是并查集.考虑到水位不断上涨,所以将时间倒转.先统计最后一天的联通块个数,每一天浮出水面的块进行计算.复杂度O(玄学). 代码如下 #include<cstdio> #inc ...

  5. BZOJ 4318 OSU! ——期望DP

    这次要求$x^3$的概率和. 直接维护三个值$x$ $x^2$ $x^3$的期望. 概率的平方不等于平方的概率. #include <map> #include <ctime> ...

  6. mybatis如何在控制台打印执行的sql语句

    log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log ...

  7. 【BZOJ2653】middle(主席树,二分)

    题意:一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整. 给你一个长度为n的序列s. 回答Q个这样的询问:s的左端点在[a,b]之间,右端点在[ ...

  8. 关于内存 转载自http://blog.csdn.net/xluren/article/details/8150723

    首先感谢下原作者,写的真的非常明白,非常详细 1.预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局 ...

  9. hdu 1827 有向图缩点看度数

    题意:给一个有向图,选最少的点(同时最小价值),从这些点出发可以遍历所有. 思路:先有向图缩点,成有向树,找入度为0的点即可. 下面给出有向图缩点方法: 用一个数组SCC记录即可,重新编号,1.... ...

  10. H5页面基于iScroll.js插件实现下拉刷新,上拉加载更多

    前言 在我之前的项目中,页面总是干巴巴的,用户的体验不是特别完美,我也是一直觉得把设计师给到的psd做出来就好,很少考虑用户的感受.我喜欢看不同的App,操作每个步骤,观赏每个能和我互动的交互设计效果 ...