SSH:Secure Shell,是一种网络安全协议,主要用于登录远程计算机的加密过程。

登录方式主要有两种:

1、基于用户密码的登录方式:

 

加密原理:

 

当服务器知道用户请求登录时,服务器会把自己的公钥发给用户,ssh会将服务器的公钥存放在客户端的~/.ssh/known_hosts文件下,用户会根据服务器给它发的公钥进行加密,加密好好之后返回给服务器,服务器用自己的私钥解密,如果密码正确,则用户会成功登录到服务器上。

如果服务器改变了自己的公钥,客户端想要登录时必须删除自己~/.ssh/known_hosts文件下的旧内容,重新获取服务器新的公钥。只要你知道服务器上的用户和密码,就可以成功登录到远程服务器上。

命令格式: # ssh user@ip

在你第一次登录时,界面上会出现如下图的情形:

 Are you sure you want to continue connecting (yes/no)?

它会给你提示:你确定你要继续链接吗?,这时,你输入yes就好。接下来会让你输入密码,只要正确输入就可成功登录。

2、基于密钥的登录方式:

加密原理:

 

你自己事先得创建一对密钥,把自己的公钥放在你需要登录的服务器上。当客户端需要请求密钥验证登录服务器时,服务器收到请求后,服务器就用公用密匙加密一段随机字符串并把它发送给客户端。客户端收到加密后的随机字符串之后就可以用客户端的的私钥加密再把它发送给服务器,如果服务器上你事先存放的公钥解密成功则证明用户是可信的,直接允许登录,不再要求密码。

获取自己密钥对的命令格式:$ ssh-keygen

运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。

命令完成后,在~/.ssh/目录下会生成两个新文件:id_rsa.pub和id_rsa。前者存放你自己的公钥,后者存放你自己的私钥。

然后将自己的公钥传到服务器上,该命令格式为:$ ssh-copy-id user@ip

成功登录后,重启服务器ssh服务:   $ systemctl  restart  ssh.service

ssh 的认证原理的更多相关文章

  1. ssh公钥认证原理及设置root外的其他用户登录ssh

    1)创建其他用户 useradd [-d 登录目录] [-G ssh][用户名]  一定要将用户添加到ssh组不然无法没有权限登录ssh 2)设置ssh不允许root登录 vi /etc/ssh/ss ...

  2. SSH认证原理和批量分发管理

    SSH密码认证原理 几点说明: 1.服务端/etc/ssh目录下有三对公钥私钥: [root@m01 ssh]# ls moduli ssh_config sshd_config ssh_host_d ...

  3. Linux之SSH密钥认证

    1.SSH协议的认识 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前 ...

  4. 转: SSH 公钥认证

    转: http://blog.knownsec.com/2012/05/ssh-%E5%85%AC%E9%92%A5%E8%AE%A4%E8%AF%81/ SSH 公钥认证 2012-05-15 简介 ...

  5. OpenSSH 密码和公钥认证原理探究

    目录 配置和保护SSH H3 - 使用SSH 访问远程命令行 H4 - 什么是OpenSSH ? H4 - 登录方式: H4 - 登录并执行临时命令: H4 - 查看登录用户 H4 - 登录原理 密码 ...

  6. Kerberos认证原理简介

    1.1 What is Kerberos 1.1.1 简单介绍 Kerberos是一个用于鉴定身份(authentication)的协议, 它采取对称密钥加密(symmetric-key crypto ...

  7. SSH公钥认证+优化

    一 ssh公钥认证流程: sshclinet机器:产生公私钥(公钥相当于一把锁) sshclient:将公钥发给sshserver(抛出锁子) sshclinet去连sshserver不需要密钥   ...

  8. Linux配置SSH公钥认证与Jenkins远程登录进行自动发布

    公钥认证,是使用一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密:另一个称为密钥(private key),只有拥有者才能看到,用于解密. 在使用jenkins ...

  9. 一次由SELinux引起的ssh公钥认证失败问题

    一直使用CentOS作为服务器系统,平时装完系统以后都是建立publickey认证机制,然后关闭密码认证.原本是一件轻车熟路毫无压力的事情,不想前日新装一台机器按照正常配置以后居然使用publicke ...

随机推荐

  1. Python 读、写、追加csv文件详细以及注意事项

    一.利用csv库创建文件 首先导入csv文件 import csv 根据指定的path创建文件: def create_csv(path): with open(path, "w+" ...

  2. day_5.26python面试重点

    列表生成式: ''' 2018-5-26 19:40:58 生成器(generator):在Python中,这种⼀边循环⼀边计算的机制. ''' # 第一种实现 :只要把⼀个列表⽣成式的[ ]改成( ...

  3. node-sass 安装

    设置 export ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/" export SASS_BINARY_SI ...

  4. 如何设置Mac电脑的DNS

    这两天我的Mac不能上网了,虽然正常连接了internet,但是网页.App Store.以及各种应用都无法连接到网络. 这是什么问题呢? 于是,我就寻着下面的方法对我的Mac进行了体检: 首先找到右 ...

  5. win10 Java环境变量,hadoop 环境变量

    妈呀,今天又重装了系统.需要装上java环境. 安装环境老百度,然后老掉坑.(path 路经) 1,新建环境变量 JAVA_HOME 2, 新建 CLASSPATH 环境变量 .;%JAVA_HOME ...

  6. 部署Java项目到阿里云服务器主机

    https://m.aliyun.com/jiaocheng/548684.html https://blog.csdn.net/qq_30865575/article/details/7827329 ...

  7. 小心踩雷,一次Java内存泄漏排查实战

    1.使用 jstack pid > jstack.log 保存了线程栈的现场,使用 jmap -dump:format=b,file=heap.log pid 保存了堆现场: https://m ...

  8. lumen之composer自动加载

    composer作为PHP的包管理工具,让PHP可以使用命名空间, 载入对应的类文件,不用理会文件引入的路劲问题,代码可读性也大大提高 composer 自动加载 composer 自动加载的规则 v ...

  9. js return false\e.preventDefault() 以及session

    @{ ViewBag.Title = "Test"; } <h2>Test</h2> 区别的介绍 <br/> 我们在平时的编码中javascri ...

  10. Xcode编译警告Assigning to 'id<XXXDelegat> ——Nullable' from incompatible type 'XXXView *const_strong'

    编译报警告 可能是 自定义分类使用协议时出现与父类协议的冲突 解决方法如下: