服务器端与客户端的密钥系统不一样,称为非对称式密钥系统
RSA算法的基础是模运算x mod n,事实上:
[(a mod n) + (b mod n)] mod n = (a+b) mod n
[(a mod n) - (b mod n)] mod n = (a-b) mod n
[(a mod n) * (b mod n)] mod n = (a*b) mod n
因此有(a mod n)^d mod n = a^d mod n
报文/信息(message)其实仅仅是一个比特模式(bit pattern),每个比特模式可以表示为一个唯一的整数,加密一个报文就等价于加密一个数
为了加密m,我们可以加密对应的数,得到一个新的数(即密文)
 
RAS生成公钥、私钥对的过程: 
  1. 选择2个1024bits的大质数p和q
  2. 计算n = pq,z = (p-1)(q-1)
  3. 选择e (满足e<n),使e与z 之间没有公因子,即e, z互质
  4. 选择d使得ed-1刚好可以被z整除(即: ed mod z = 1 )
  5. 得到公钥: (n,e);私钥:(n,d)
加密报文m (m<n)时,计算c = m^e mod n
解密密文c时,计算m = c^d mod n
有m = (m^e mod n)^d mod n = m^ed mod n = (m^d mod n)^e mod n 
利用公钥加密,可以利用私钥解密
利用私钥加密,可以利用公钥解密
RSA的安全性建立在“大数分解和素性检测”这个数论难题的基础上。将两个大素数相乘在计算上容易实现,而将该乘积分解的计算量相当大
 
已知公钥求解私钥,相当于在不知道两个因子p和q的前提下,找出n的因子,很难
但其计算速度很慢,因此往往利用公钥加密建立安全连接,然后建立第二个密钥-对称会话密钥,用于加密数据

远程连接服务器主要有三种:
文字接口明码:telnet,rsh等为主
文字接口密码:SSH(Secure SHELL protocol)为主
图形接口:Xdmcp,VNCRDP
 
SSH有两种加密算法,默认RSA加密算法
开启sshd服务:
[root@localhost ~]# rm /etc/ssh/ssh_host*
[root@localhost ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
[root@localhost ~]# date
Tue Jul :: EDT
[root@localhost ~]# ll /etc/ssh/ssh_host*
-rw-r-----. root ssh_keys Jul : /etc/ssh/ssh_host_ecdsa_key
-rw-r--r--. root root Jul : /etc/ssh/ssh_host_ecdsa_key.pub
-rw-r-----. root ssh_keys Jul : /etc/ssh/ssh_host_ed25519_key
-rw-r--r--. root root Jul : /etc/ssh/ssh_host_ed25519_key.pub
-rw-r-----. root ssh_keys Jul : /etc/ssh/ssh_host_rsa_key
-rw-r--r--. root root Jul : /etc/ssh/ssh_host_rsa_key.pub
[root@localhost ~]# netstat -tlnp | grep ssh
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp6 ::: :::* LISTEN /sshd
ssh 账号@主机ip
不写账号会默认以本地端账号登入远程
ssh -f student@127.0.0.1find / &> ~/find1.log
-f  不登入远程主机只发送一个指令过去
 
服务器公钥记录文件 ~/.ssh/known_hosts
若接收到的公钥尚未记录,则询问用户是否记录
若接收到的公钥已经记录,则进行对比,不同会发出警告
 
scp XXX.tar root@ipaddress:/root/(目标)
scp student@127.0.0.1:/etc/bashrc /tmp
-r 递归地复制文件夹
[root@www ~]# sftp student@localhost
sftp> lls /etc/hosts
/etc/hosts
sftp> put /etc/hosts
Uploading /etc/hosts to /home/student/hosts
sftp> ls -a
. .. .bash_history .bash_logout
.bash_profile .bashrc .mozilla hosts
sftt> lcd /tmp
sftp> lpwd
Local working directory: /tmp
sftp> get .bashrc
Fetching /home/student/.bashrc to .bashrc
/home/student/.bashrc % .1KB/s :
sftp> lls -a
. .font-unix keyring-rNd7qX .X11-unix
.. .gdm_socket lost+found scim-panel-socket:-root
.bashrc .ICE-unix mapping-root .X0-lock
sftp> exit 
制作不用密码立刻可以登入的ssh用户
[root@localhost ~]# ssh-keygen -t rsa/dsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
产生了两个文件~/.ssh/id_rsa(-rw-------)和~/.ssh/id_rsa.pub
将公钥内容放置到服务器端的~/.ssh/authorized_keys(-rw-r--r--)下
ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host可以将key直接写入远程机器的authorized_keys中
之后通过SSH登录远程机器不再需要密码
[root@VM_6_187_centos ~]# ldd $(which sshd) | grep libwrap
libwrap.so. => /lib64/libwrap.so. (0x00007f0430674000)
[root@VM_6_187_centos ~]# ldd $(which httpd) | grep libwrap
SSH有支持tcp wrappers所提供的libwrap.so这个函式库档案,可以使用/etc/host.{allow,deny}进行类似防火墙的抵抗机制,http则不可以
控制远程访问设置:
[root@www ~]# vim /etc/hosts.allow
sshd: 127.0.0.1 192.168.1.0/255.255.255.0 192.168.100.0/255.255.255.0
[root@www ~]# vim /etc/hosts.deny
sshd : ALL
这两个文件的格式都是一样的<service(program_name)> : <IP, domain, hostname> : <action>
hosts.allow的action默认allow,hosts.deny的action默认deny 

RSA加密算法和SSH远程连接服务器的更多相关文章

  1. golang使用ssh远程连接服务器并执行命令

    安装golang.org/x 直接去github上面,把https://github.com/zieckey/golang.org,把整个目录拷贝下来放到你的gopath下面即可.记住在gopath的 ...

  2. mac 通过 终端 ssh 远程连接 centos 服务器

    mac 通过 终端 ssh 远程连接 centos 服务器 在终端下输入 ssh -l root 204.74.*.*      就可以连接了,这是端口没变的情况,还是原来的22 ssh -p 448 ...

  3. 全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)

    注:本文专门用于指导对计算机编程与设计(尤其是互联网产品开发与设计)感兴趣的 Mac 新用户,如何在 Mac OS X 系统上配置开发与上网环境,另有<全新 Mac 安装指南(通用篇)>作 ...

  4. SSH 远程连接

    ssh远程连接 准备工作: 1 准备两台linux pc 我们一般用的是VMware虚礼软件 2 这两台linux可以互通 3 linux1 :192.168.2.2 这台为你要连接的服务器 linu ...

  5. SSH远程连接服务

    一.SSH 原理图 二.SSH 原理描述 2.1:什么是SSH SSH是专门为了远程登录会话和其他网络服务提供的安全性协议,使用SSH协议可以有效的防止远程连接会话的时候出现信息泄密,在数据传输的时候 ...

  6. 虚拟机VMware网络类型&&SSH远程连接Linux

    前言: Linux专题是16年11月开始写,说来惭愧,已经5个月没学Linux,至今感觉连入门还没达到.暑假实习有投运维开发岗位,无奈对Linux不熟悉,校招简历也被刷了.so, 我打算先花1个月内的 ...

  7. Windows和linux虚拟机之间联网实现SSH远程连接以及VMware的3种网络模式[NAT、桥接和Host-only]

    Windows和linux虚拟机之间联网实现SSH远程连接以及VMware的3种网络模式[NAT.桥接和Host-only] 作者:天齐 一.Windows和linux虚拟机之间联网实现SSH远程连接 ...

  8. ssh远程连接的故障排查详解

    排查故障: 1.两个机器之间是否通畅,看物理网络(网线网卡,IP是不是正确) ping ip -t 来检测物理网络是否通畅 通 不通 不通: 1.客户端到服务器端物理链路有问题 网卡 ,IP ,  网 ...

  9. VScode远程连接服务器

    VScode远程连接服务器 1.远程服务器安装rmate,在远程服务器上执行以下操作 wget https://raw.githubusercontent.com/sclukey/rmate-pyth ...

随机推荐

  1. yum下载软件包

    方法一: downloadonly插件有一个yum的插件叫做downloadonly,就是只下载不安装的意思.1. 安装插件yum install yum-download2. 下载yum updat ...

  2. SPRING 阅读--JdkDynamicAopProxy

    一.简介 JdkDynamicAopProxy 代理类是spring 默认的JDK动态的代理类实现.它实现了Java 动态代理接口InvocationHandler接口和Spring定义的AopPro ...

  3. org.apache.ibatis.reflection.ReflectionException: There is no getter for property named XXX 异常的解决办法。(亲测,一次成功!) #Mybatis

    今天在用Mybatis的时,写测试验证插入操作时出现错误org.apache.ibatis.reflection.ReflectionException: There is no getter for ...

  4. 枚举-称硬币POJ1013

    #include <iostream> #include<string.h> using namespace std; char Lleft[][]; char Lright[ ...

  5. JAVA实现BP神经网络算法

    工作中需要预测一个过程的时间,就想到了使用BP神经网络来进行预测. 简介 BP神经网络(Back Propagation Neural Network)是一种基于BP算法的人工神经网络,其使用BP算法 ...

  6. 微服务迁移记(五):WEB层搭建(4)-简单的权限管理

    一.redis搭建 二.WEB层主要依赖包 三.FeignClient通用接口 以上三项,参考<微服务迁移记(五):WEB层搭建(1)> 四.SpringSecurity集成 参考:< ...

  7. 阿里云ecs轻量级服务器node镜像部署

    这个是自带安装pm2,nginx,node,mongodb的环境的,目录在控制台有给出, server端的配置按照开发手册去操作即可. 而静态的页面.需要修改nginx的配置文件,找到nginx的ng ...

  8. HTML5 Canvas小游戏基础:用户交互

    交互是游戏的根本.缺少了用户交互,游戏就不能称之为游戏,只能说是动画或电影.事件是浏览器响应用户交互操作的一种机制. 1.事件和事件执行 事件定义了用户与页面交互时产生的各种操作(主要通过鼠标或热键的 ...

  9. SELECT within SELECT Tutorial -- SQLZOO

    SELECT within SELECT Tutorial 注意:where语句中对表示条件的需要用单引号, 下面的译文使用的是有道翻译如有不正确,请直接投诉有道 01.List each count ...

  10. PHP pos() 函数

    实例 输出数组中的当前元素的值: <?php$people = array("Peter", "Joe", "Glenn", &quo ...