SSH(Secure Shell)是一种网络协议,用于在不安全的网络中安全地进行远程连接和数据传输。它通过加密技术和身份验证来保护通信的安全性。SSH可以通过使用公钥和私钥对进行身份验证,确保只有授权的用户可以访问和操作远程服务器。此外,SSH还可以提供加密的数据传输通道,以防止数据被窃听或篡改。通过使用SSH,用户可以安全地远程登录到服务器并执行命令,也可以通过安全传输文件。
SSH是一种安全的网络协议,用于访问网络中的远程计算机。
计算机通过网络互相通信。因此,网络研究人员定义了一组规则,用于与其他计算机进行通信,并开始开发诸如Telnet之类的协议;使用此协议,一个用户可以控制另一个计算机。
但它们不安全,即网络中间的任何人都可以拦截并读取正在传输的数据。在90年代中期,一种更安全的协议名为ssh作为Telnet协议的可靠后继者被引入。
如果您是在行业中从事软件开发或系统管理的人员,您可能至少使用过ssh一次。如果没有,请现在学习它,因为它是必备的基本技能之一。
什么是SSH?
SSH或安全外壳或安全套接字外壳是一种网络协议,帮助我们安全地访问和与远程机器(大多数是远程服务器)通信。
它提供强大的加密,被广泛用于链接和开发人员来管理远程系统和应用程序、执行命令、share files等。
SSH的需求
SSH于1995年创建,旨在解决不安全的远程访问协议(如rlogin、rsh、Telnet)所面临的安全问题。
现在让我们谈谈在1969年开发的Teletype Network(TTY),它代表了遥控服务器。它是一种简单的命令行工具,运行在您的计算机上,用于访问位于全球各地的远程服务器。并发送要在该服务器上执行的命令,就像您就坐在远程服务器之前一样(即使离服务器有几英里之遥)。Telnet 通过网络以纯文本形式传输和接收消息。
您要执行的命令可能是运行程序、创建目录、创建/删除/传输文件、启动/停止服务等。
连接网络中的另一台机器的问题是,传输的数据将通过许多网络传递。与此同时,其中一些可能是不安全的,并且传输的数据可能在到达目标机器之前被拦截、可能被修改。
在安全性不是很重要的早期阶段,所有通信都以纯文本形式进行。因此,在客户端和服务器之间通过互联网传输的数据可以轻松拦截。并且可以读取,因为消息没有加密。
因此,明文协议极其不安全,绝不能用于敏感数据传输,如passwords、机密信息等。因此,SSH被认为是传统远程访问网络协议的安全替代方案。
它是如何工作的?
SSH使用客户端-服务器架构,在网络上通过连接ssh客户端与ssh服务器进行安全通信。默认情况下,ssh服务器侦听标准TCP端口22(您可以change this for better security)。
它使用公钥加密技术在客户端和服务器之间进行身份验证。此外,该协议使用强大的symmetric encryption和哈希算法在客户端和服务器之间交换消息,以确保隐私和数据完整性。
由于其安全性和耐久性,Linux是遥控服务器的广泛采用操作系统。许多在互联网上使用Linux操作系统的服务器已经连续运行多年,没有发生许多故障,甚至没有重启。
大多数SSH会话(我们访问远程服务器的时间段)仅包含以下两个操作:
- 身份验证
- 命令执行
SSH服务器可以使用多种方法对客户端进行身份验证。
两种常见的方法是:
- 基于密码的
- 基于密钥的
基于密码的身份验证是用于安装客户端身份验证的默认方法。这是最基本的SSH身份验证方式,但不是最安全的。
尽管密码是安全地发送到服务器的,但现代的链接可能会绕过身份验证。
通过生成SSH密钥对,Key-based authentication可进一步提高系统安全性,这被证明是一种可靠且安全的替代方案。
在服务器成功验证客户端之后,它们之间建立了一个安全连接。
使用SSH访问远程服务器
如果您是Mac/Linux用户,您可以直接使用终端输入和运行ssh命令,因为OpenSSH已经默认安装。
如果您是Windows用户,则需要安装第三方终端仿真器客户端来运行ssh命令。 PuTTY 是Windows操作系统上最受欢迎的ssh客户端。
要使用SSH连接到远程服务器,您至少需要知道两件事。
- 服务器主机
- 用户名
基本ssh命令的语法如下:
$ ssh @ -p
user-name 是我们要连接的远程计算机的用户名(而不是您本地计算机上的用户),而 host 可以是IP地址或域名。
让我们看一个使用 OverTheWire 网站连接到远程服务器的示例。这是一个免费的战争游戏挑战网站。
现在,让我们使用ssh连接到 bandit 挑战。这是该网站上提供的一个教你如何使用SSH登录的挑战。
凭据:
用户名和密码:bandit0
主机和端口:bandit.labs.overthewire.org,2220
当您输入以下命令并按回车时:
$ ssh [email protected] -p 2220
它将提示您输入密码进行身份验证。现在输入密码并按回车:
如果输入的密码正确,您将成功登录到远程服务器,并且您的终端将如上图所示。
现在,您可以使用远程计算机的终端来输入和执行命令并执行您所需要的操作。
当您想要结束ssh会话时,输入 exit 命令:
$ exit
当您成功从ssh会话中注销时,您将收到一条消息:“连接已关闭”。
结论
SSH的流行原因主要是服务器和客户端之间的整个通信被加密。
大多数人认为使用ssh很复杂,并且很难理解其工作原理,但实际上它比您想象的要简单。现在您已经对SSH有了基本的了解,了解了它的工作原理、安全方面以及为何在通信中起着重要作用。
接下来,探索一些资源以 become Sysadmin。