Linux网络服务 SSH远程连接(访问及控制)

28 阅读2分钟

一、SSH基础

1、什么是SSH协议

SSH是一种安全的网络协议,用于在不安全的网络中安全地进行远程访问和数据传输。它通过加密技术对网络连接进行保护,常用于远程管理服务器和安全文件传输,通过网络的方式方便管理远程服务器。

  • SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;
  • SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;
  • SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
  • SSH使用传输层TCP协议的22号端口。

SSH客户端<--------------网络---------------->SSH服务端

2、SSH的优点

利用SSH协议可以有效防止远程管理过程中的信息泄露问题,通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

优点:

  • 数据传输是加密的,可以防止信息泄漏
  • 数据传输是压缩的,可以提高传输速度

3、常见的SSH服务软件/工具

客户端软件

  1. Linux 客户端: ssh, scp, sftp,slogin
  2. Windows 客户端:xshell, MobaXterm,putty, securecrt, ssh secure shell client

Openssh软件包

软件名openssh,服务名sshd。CENTOS 7默认安装的是这个软件包。

  • 服务名称:sshd

  • 服务端主程序:/usr/sbin/sshd

  • 服务端配置文件:/etc/ssh/sshd_config

  • 客户端主程序文件:/usr/bin/ssh

  • 客户端配置文件:/etc/ssh/ssh_config

二、ssh原理

公钥传输原理

  • 客户端发起链接请求。
  • 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)。
  • 客户端生成密钥对。
  • 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密。
  • 客户端发送加密后的值到服务端,服务端用私钥解密,得到Res。
  • 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)。
  • 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密。

2.1连接登录

ssh  [远程登录的服务器主机名或IP地址]