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* 的文件,若系统刚刚安装完成时,由于没有这些公钥,因此 sshd 会主动去计算出这些需要的公钥,同时也会计算出服务器自己需要的私钥

客户端主动联机请求: 若客户端想要联机到 ssh 服务器,则需要使用适当的客户端程序来联机,包括 ssh, putty 等客户端程序连接

服务器传送公钥给客户端: 接收到客户端的要求后,服务器便将第一个步骤取得的公钥传送给客户端使用 (此时应是明码传送,反正公钥本来就是给大家使用的)

客户端记录并比对服务器的公钥数据及随机计算自己的公私钥: 若客户端第一次连接到此服务器,则会将服务器的公钥记录到客户端的用户家目录内的 ~/.ssh/known_hosts 。若是已经记录过该服务器的公钥,则客户端会去比对此次接收到的与之前的记录是否有差异。若接受此公钥, 则开始计算客户端自己的公私钥

回传客户端的公钥到服务器端: 用户将自己的公钥传送给服务器。此时服务器:具有服务器的私钥与客户端的公钥,而客户端则是: 具有服务器的公钥以及客户端自己的私钥,你会看到,在此次联机的服务器与客户端的密钥系统 (公钥+私钥) 并不一样,所以才称为非对称加密系统

开始双向加解密: (1)服务器到客户端:服务器传送数据时,拿用户的公钥加密后送出。客户端接收后,用自己的私钥解密 (2)客户端到服务器:客户端传送数据时,拿服务器的公钥加密后送出。服务器接收后,用服务器的私钥解密,这样就能保证通信安全

4. ssh 组成

(1). ssh 协议使用的是tcp 22号端口,telnet 使用的是tcp 的23号端口,ssh协议是C/S架构,分为服务器端与客户端。

(2). 服务器端的程序有 sshd

客户端的程序有,Windows下 putty,SecureCRT,SSHSSH Secure Shell Client …… 。

OpenSSH 是一组安全远程的连接工具,主要包括了几个部份:ssh、sshd、scp、sftp、ssh-keygen、ssh-agent、ssh-add等

ssh(SSH 客户端,用于登录建立连接,是 rlogin 与 Telnet的安全替代方案)
sshd (SSH 服务端,典型的独立守护进程)
scp、sftp (文件安全传输工具,rcp、ftp 安全的替代方案)
ssh-keygen (用于产生 RSA 或 DSA 密钥)
ssh-agent、ssh-add(帮助用户不需要每次都要输入金钥密码的工具)

5. ssh 工具实现

OpenSSH 包括sshd主程序与ssh客户端

6. sshd 配置文件详解

vim /etc/ssh/sshd_config


#1. SSH Server 全局设定,port ,协议 ……

# Port 22  #默认端口,也可以使用多个端口

Protocol 2 #协议版本号

# ListenAddress 0.0.0.0 #默认值是监听所有接口的 SSH 要求

# PidFile /var/run/sshd.pid #放置 SSHD 这个 PID 的文件

# LoginGraceTime 2m #2分钟之内不输入密码,自动断开

# Compression delayed  #使用压缩数据模式进行传输,登入后才将数据压缩 (delayed)
posted @ 2022-03-24 23:27  风风羊  阅读(2988)  评论(0编辑  收藏  举报