ssh详解

ssh讲解

一.加密、解密

1.数据加密与解密

加密(算法)

解密(算法)




明文                                                                       密文

2.加密算法

1)对称加密算法:数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,需要使用加密及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。

算法:DES,AES

优点:算法公开、计算量小、加密速度快、加密效率高。

缺点:在数据传送前,发送方和接收方必须商定好密钥,如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

2)非对称加密算法:假设A要连接主机B ,A先生成一对密钥。 A将公钥发送给B,私钥自己保留。B生成一个随机数并用A的公钥加密发送给A,A用私钥解密。A将解密后的随机数发送给B,B发现随机数是正确的则认证通过。

算法:RSA,DSA

优点:非对称加密使用一对密钥,一个用来加密,一个用来解密,而且公钥是公开的,私钥是自己保存的,不需要像对称加密那样在通信之前要先同步密钥。

缺点:加密和解密

3)单向加密算法:提取数据特征码,特征码使用某一算法计算得出。A将明文和特征码发送给B,B用相同算法计算特证码,若得出的特征码相同,则明文一致,保证数据的安全性。

算法:MD4,MD5,SHA,HMAC

  1. ssh及应用

1.ssh的安装配置

(1)安装、服务

# yum install –y ssh

#rpm –qa | grep ssh

#/etc/init.d/sshd start

#netstat –tnl| grep 22

(2)文件解读

花费时间长、速度慢,只适合对少量数据进行加密。

Moduli       会话秘钥交换信息

Ssh_config    客户端配置文件

Ssh_config    服务端配置文件

文件命名中未包含rsa或dsa的为sshv1版本的连接文件

文件命名中包含rsa或dsa的为sshv2版本的连接文件,加密算法有rsa和dsa两种

(3)服务端配置文件解读

#vim /etc/ssh/sshd_config

#空格                         纯注释

#port 22                       可启用的参数,指定连接端口

#protocol 2                     ssh的版本

#AddressFamily  any            在ipv4还是ipv6上提供ssh服务

#Listen Address                 只给这一个地址提供服务

PermitRootLogin  yes            允许root登录

#KeyRegenerationInterval         秘钥重新生成的时间

#ServerKeyBits                  秘钥长度

#SyslogFacility                  日志设备

#MaxAuthTime                  重试密码次数

#RsaAuthentication               基于rsa认证

#PubkeyAuthentication            公钥认证

#AuthorzedKeysFile              公钥所在用户家目录

#PasswordAuthtication            密码认证

1Ssh服务端:10.1.16.173

限制tom用户登录ssh

# override default of no subsystems

Subsystem sftp  /usr/libexec/openssh/sftp-server

DenyUsers tom

2)给指定的ip提供ssh服务,只给174提供ssh服务,在文件最后一行添加以下内容:

服务端:

# vim /etc/ssh/shd_config

AllowUsers

#/etc/init.d/sshd restart

客户端连接测试:10.1.16.174连接成功

10.1.14.36连接失败

2.ssh的认证机制

  1. ssh基于口令的认证

1)用户向远程主机发登录请求:ssh [email protected]远程主机

2)远程主机收到用户的登录请求,把自己的公钥发给用户。

2)用户使用这个公钥,将登录密码加密后,发送回远程主机。

3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

#ssh –l username 10.1.16.173,l表示登录名(login name)

#ssh [email protected]

注:当远程主机的公钥被接受以后,它就会被保存在$HOME/.ssh/known_hosts之中。下次再连接这台主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码authorized_keys是远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中。

#ssh [email protected] ‘ifconfig’

Ssh可将被连接主机上的命令运行后返回本机

  1. 基于密钥的认证->使用非对称加密算法

用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回远程主机。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求输入密码,这和之前的ssh账号密码也没有直接关系。

#ssh-keygen –t rsa        #也可以不加-t rsa

#ssh-copy-id [email protected]

#ssh [email protected]

3.scp及sftp简单应用

Scp:基于ssh的远程复制命令,可以实现在主机之间传输数据

Scp 【option】src dest

将远端文件复制到本地

(1)Root用户

#scp [email protected]:/etc/passwd /mnt          #复制文件

#scp –r [email protected]:/tmp/ /mnt             #递归复制目录

#scp –p [email protected]:/tmp/file /mnt          #复制保留权限

将本地文件复制到远端

#scp file [email protected]:/mnt                 #复制文件

#scp –r tom [email protected]:/mnt              #递归复制目录

#scp –p file [email protected] :/mnt              #复制保留权限

2)普通用户

#useradd tom

#su – tom

#scp file [email protected]:/mnt       #tom复制文件到对方的root的mnt目录下#scp file [email protected]:          #tom复制文件file’到jerry的家目录下

#scp –r dir [email protected]:       #tom复制目录dir到jerry的家目录下

 3Sftp简单应用    

Sftp [email protected]

可以使用put、get等命令上传下载文件

时间: 2024-08-25 17:53:25

ssh详解的相关文章

如来神掌第一式第三招----SSH详解

################################################################################ Name : Mahavairocana                                                                                                                                           # Author :

linux服务ssh详解

ssh服务: 管理服务器的方式: 本地管理 (安装系统.故障修复) SSH远程连接的方式 Linux: ssh命令 Windows: Xshell; Xmanager SecureCRT Putty 提供ssh服务/ssh客户端工具的软件: [[email protected] ~]# rpm -qa | grep ssh openssh-server-6.6.1p1-33.el7_3.x86_64 openssh-clients-6.6.1p1-33.el7_3.x86_64 [[email 

[SSH服务]——SSH详解

在总结ssh原理前,我先做了一个ssh过程的实验 首先我搭建了这样一个实验环境: (1) SSH Server:10.0.10.198 (2) SSH Client:10.0.10.158 在Server端 10.0.10.198,我执行了如下操作: (1)清空了服务器端提供的公钥与自己的密钥: [[email protected] ssh]# rm /etc/ssh/ssh_host* rm:是否删除普通文件 "/etc/ssh/ssh_host_dsa_key"?y rm:是否删除

远程连接服务器---SSH详解

对于系统管理员来说,远程连接服务器是一个很有用的操作,它使得服务器管理变得更加方便. 下面我就来科普一下有关远程连接服务器的知识: 目前,远程连接服务器的类型有以下几种: ① 文字接口的明文传输:Telnet.RSH为主,很少用到. ② 文字接口的加密传输:以SSH为主,已经取代了上面的明文传输方式. ③ 图形接口:XDMCP.VNC.XRDP等较为常见. 这篇文章只为实战,不为普及概念性知识.所以我只讲解在工作中最常用到的技术SSH.关于SFTP技术和VNC技术,请查阅我的其他博客. 好,先来

Linux下ftp和ssh详解

学习了几天Linux下ftp和ssh的搭建和使用,故记录一下.学习ftp和ssh的主要目的是为了连接远程主机,并且进行文件传输.废话不多说,直接开讲! ftp服务器 1. 环境搭建 本人的系统是Archlinux,我是基于vsftpd来搭建的,首先需要安装它: pacman -S vsftpd 接着对其配置文件进行编辑,打开/etc/vsftpd.conf(也可能在/etc/vsftdp/.vsftpd.conf) 以下是我的配置文件内容: 在以上的配置文件中,我们允许匿名用户登录,并且其有删除

saltstack ssh详解

主要内容: 如果客户端没办法安装客户端,可以再master端安装salt-ssh. 安装命令: yum install -y salt-ssh 安装后需要配置一下配置文件(花名册): 打开配置文件如下: vim /etc/salt/roster 代码如下: linux-node1.example.com: #id host: 192.168.188.130 user: root passwd: 123456 linux-node2.example.com: host: 192.168.188.1

SSH框架--struts深入详解(一)

学习了struts,但是对于它的由来,以及为什么使用action和struts.xml的方式而不采用以前的servlet方式,有些疑问,到底之前的方式有什么弊端,struts又给我们带来了什么便利? 下面一一为大家解答! struts的由来: 随着JSP与Servlet 技术大量应用于以Web为基础的应用程序,为了提升Web 应用程序可维护性与重复使用性,Java开发人员提出了一些较佳的开发模式.比较常见的两种JSP应用架构分别为Model1 与Model 2.详情参见(JAVA学习篇--JAV

使用ssh开发rest web服务支持http etag header的教程详解

原创整理不易,转载请注明出处:使用ssh开发rest web服务支持http etag header的教程详解 代码下载地址:http://www.zuidaima.com/share/1777391667989504.htm 导言 REST方式的应用程序构架在近日所产生的巨大影响突出了Web应用程序的优雅设计的重要性.现在人们开始理解"WWW架构"内在的可测量性及弹性,并且已经开始探索使用其范例的更好的方式.在本文中,我们将讨论一个Web应用开发工具--"简陋的.卑下的&q

SSH 协议与OpenSSH详解

1. ssh概述 ssh是(Secure SHell protocol) 的简写,安全外壳协议(SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议. 2. ssh 主要功能 一个就是类似 telnet 的远程联机使用 shell 的服务器,即 ssh 另一个就是类似 FTP 服务的 sftp-server ,提供更安全的 FTP 服务 3. ssh 工作原理 服务器建立公钥: 每一次启动 sshd 服务时,该服务会主动去找 /etc/ssh/ssh_host* 的文件,若系统刚