标签: SSH

  • 站长必藏:26个Linux服务器管理常用SSH命令行

    SSH命令行可能是访问网站服务器最安全,最方便的方法之一。

    f4fb2f39157048d87fc30f4216fd37a0

    这是用于访问您站点上文件的协议,即“ Secure Shell”。只要您拥有登录凭据,就可以使用它从任何地方访问您的站点,并最大程度地保证这个访问是安全的。

    在本文中,您将了解一些可用于WordPress网站服务器管理的 最有用的SSH命令行

    1. 什么是SSH以及如何使用?
    2. 26个最常见的SSH命令行

    什么是SSH以及如何使用?

    SSH是用于访问WordPress网站上文件的安全协议。这篇文章重点介绍可以使用的SSH命令行,因此,这里将不再展开介绍如何使用SSH访问您的站点,而只会简单概述一下。

    什么是SSH?

    SSH或“Secure Shell”是一种协议,可用于访问远程服务器上的文件和目录。SSH规范将它定义为:

    “用于在不安全的网络上进行安全的远程登录和其他安全的网络服务的协议。”

    您可以使用终端(macOS或Linux上)或例如PuTTY或者Xshell客户端(Windows上),通过SSH访问您的站点,而不是使用Web浏览器。

    如何在WordPress中使用SSH?

    对于WordPress网站,SSH将帮助您通过管理界面或直接访问WordPress安装文件以及您添加到wp-content目录中的所有文件。

    您很有可能会在wp-content目录中使用它,偶尔在根目录中使用它来访问wp-config.php之类的文件。

    要在您的站点管理工作中使用SSH命令行,请打开“终端”或客户端(如PuTTY或Xshell),然后通过输入服务器相关信息进行安全访问。包括:

    • 服务器IP地址;
    • 服务器用户名;
    • 服务器密码;
    • 访问端口。

    以SSH客户端Xshell为例,安装启用Xshell,点击“文件-新建”来创建一个站点的会话:选择协议为SSH;填写服务器IP地址;输入端口,一般是22。如下图:

    站长必藏:26个Linux服务器管理常用SSH命令行插图1

    服务器基本信息填写

    此外,你还需要填写该服务器的用户身份验证信息,一般使用的是用户名+密码的登录方式,当然也有可能使用密钥等其他安全方式登录。如下图:

    站长必藏:26个Linux服务器管理常用SSH命令行插图2

    服务器身份验证

    完成此操作后,即可开始针对你的WordPress网站服务器使用SSH命令行。

    如果您的连接被服务器拒绝,则可能是由于多种原因之一。你可能还需要进行故障排除(常见的原因有账号密码错误、端口错误、服务器当前网络无法访问等),以重新建立连接。

    什么是PuTTY?如何使用?

    如果您使用的是macOS或Linux,则已经具有通过SSH访问WordPress站点服务器的工具,因为系统内置终端即可使用SSH。

    但是,如果您使用的是Windows,则需要安装客户端才能使用SSH。

    最受欢迎的SSH客户端是PuTTY(小编则更习惯了上面提到的Xshell)。您需要下载并安装它,然后才能从Windows访问您的服务器。然后,您在PuTTY中使用与在终端中相同的SSH命令。

    如何使用WordPress自动执行SSH命令?

    使用SSH访问WordPress站点的好处之一是,您可以自动化常用命令。

    您可以通过使用WP-CLI(WordPress命令行界面)来实现。通过WP-CLI界面,您可访问WordPress特定命令库,使用SSH以外的命令。

    使用WP-CLI意味着您可以自动化WordPress管理任务,例如更新WordPress安装,安装插件和配置远程服务器。使用命令行大大提升WordPress管理效率。

    将SSH与WordPress结合使用的好处

    将SSH与WordPress结合使用有许多好处:

    • 安全。随处随地通过安全的通道对服务器进行访问。
    • 方便。无需进入WordPress仪表盘即可完成许多WordPress管理工作。
    • 高效。在许多情况下,使用SSH命令比使用WordPress仪表盘或通过SFTP访问文件要快得多。

    上面我们简单地了解了什么是SSH以及如何使用命令行管理WordPress,接着我们一起来深入了解最常见的一些SSH命令行。

    26个最常见的SSH命令行

    SSH协议具有多种命令。下面为方便起见,列出了最常用的类别,并将它们分为几类。

    1. 目录命令
    2. 文件或目录管理命令
    3. 文件命令
    4. 终端命令
    5. 其他有用SSH命令行

    目录命令

    您可以使用多种SSH命令来操作处理WordPress网站中的目录(或文件夹)。

    pwd –显示当前目录(当前位置的完整路径)

    使用pwd命令可显示您当前所在位置的服务器完整路径。

    站长必藏:26个Linux服务器管理常用SSH命令行插图3

    pwd命令

    当你不清楚你当前在服务器中所在的位置时,请使用此命令,您将看到有关确切位置的更多信息。这对检查您的位置很有用,因为您没有使用代码编辑器或FTP客户端时,无法直观地看到当前所在位置。

    ls –显示目录内容(列出文件名)

    使用ls命令将显示当前目录所有内容。

    站长必藏:26个Linux服务器管理常用SSH命令行插图4

    ls命令

    您还可以使用其他参数来自定义ls命令或将其添加到命令返回的信息中:

    • ls -a 显示隐藏的文件。
    • ls -l 显示目录内容的文件详细信息,例如权限,所有权,日期等。
    • ls -s 以块为单位列出文件的大小。
    • ls -s -h 以易于阅读的形式显示大小。

    确保在命令和任何参数之间键入一个空格。

    站长必藏:26个Linux服务器管理常用SSH命令行插图5

    ls -a命令

    cd –更改目录位置

    cd命令即帮助你从当前目录进入到另一个目录。您可以移至当前目录的子目录,也可以使用正确的参数向上或向下移动。

    下面的命令即从服务器的根目录转到public目录:

    cd public
    cd public
    cd public

    要上移目录树或返回原目录,请使用以下参数之一:

    • cd .. 转到当前位置上一级目录。
    • cd ../foldername 转到您上一级目录中的另一个文件夹中。
    • cd – 转到当前位置的一级目录。
    • cd / 转到根目录。

    在下面的屏幕截图中,我进入了某个网站的根目录并列出了其内容。如果您WordPress站长,应该对这些文件不陌生:

    站长必藏:26个Linux服务器管理常用SSH命令行插图6

    进入网站根目录并列出文件内容

    mkdir –创建一个新目录

    使用mkdir命令,可以在当前目录中创建一个新目录。

    举个栗子,比如您位于WordPress某个插件文件夹中,并且想要为样式表添加目录,则可以使用以下命令:

    mkdir styles
    mkdir styles
    mkdir styles

    这会将一个新的空目录添加到当前所在的文件夹中。如果你要创建的目录不在当前位置,你需要输入完整的路径地址。打个比方你现在所在位置为wp-content文件夹,那你输入命令应该像:

    mkdir /plugins/myplugin/styles
    mkdir /plugins/myplugin/styles
    mkdir /plugins/myplugin/styles

    rmdir –删除目录

    rmdir命令将删除服务器上的目录。使用该命令要小心谨慎,因为没有后悔药可吃

    与一样mkdir,您可以使用rmdir命令来删除当前位置的目录:

    rmdir styles
    rmdir styles
    rmdir styles

    或者,您也可以使用rmdir命令来删除指定路径的文件夹,比如:

    rmdir /plugins/myplugin/styles
    rmdir /plugins/myplugin/styles
    rmdir /plugins/myplugin/styles

    rm命令还可以添加其他参数,完成更多的删除动作。

    • rm * foldername –删除目录中的所有文件或内容。
    • rm -r foldername –删除文件夹以及文件夹内的所有内容。

    文件或目录管理命令

    以下命令可用于文件或文件夹/目录。

    cp –复制文件或文件夹

    你可以使用cp命令来复制文件或者文件夹到另一个位置。您需要指定要将文件或文件夹复制到的位置。

    cp filename.extension /dir/
    cp filename.extension /dir/
    cp filename.extension /dir/

    上面的命令指定要复制的文件的名称(包括扩展名)及复制位置。

    你还可以对复制的文件执行重命名(即新版本的名称与原始版本的名称不同),如:

    cp filename.extension /dir/filename.extension
    cp filename.extension /dir/filename.extension
    cp filename.extension /dir/filename.extension

    此命令还可以使用各种参数,来完成不同的操作:

    • cp -r 复制文件夹的所有内容。
    • cp -f 如果已有另一个同名文件,则删除目标文件,并用新文件覆盖它。
    • cp -i 复制前会提示警告信息。
    • cp -u 仅当文件具有不同的内容时,才覆盖目标文件夹中的文件。
    • cp -n检查文件是否存在,如果存在,将不会复制。该命令不会覆盖文件。
    • cp -a 在保留原文件属性的前提下复制文件。

    mv –移动文件或文件夹

    除了复制文件和文件夹,您还可以移动它们。你可以通过mv命令来实现。

    与一样cp,您可以移动文件或文件夹并保持相同的名称,也可以移动并执行重命名操作。

    • mv filename.extension /dir/ 移动文件并保持相同的名称。
    • mv filename.extension /dir/filename1.extension 移动并重命名文件。
    • mv filename/ .. 将文件移至上一个文件夹。

    zip –压缩文件或文件夹

    您可以对文件夹或文件使用的另一个命令是zip,压缩文件夹及其内容。命令需包括将被压缩为zip文件的文件/文件夹的名称。您还可以加入一些参数,来实现不一样的压缩操作:

    • zip -r filename.zip foldername 仅压缩,不删除文件夹。
    • zip -m filename.zip foldername 压缩文件夹并将其删除,仅留下压缩版本的文件夹。
    • zip -d filename.zip foldername 从指定的现有zip存档中删除文件。
    • zip -u filename.zip foldername 更新现有zip归档文件中的文件:如果您只是想更新了原始文件并且不想删除该zip文件并创建一个新文件,这个命令则非常有用。

    站长必藏:26个Linux服务器管理常用SSH命令行插图7

    zip -r命令

    然后,当您列出文件夹的内容时,您将看到zip文件和原始文件夹(如果使用的命令是zip -r),但如果使用的命令是zip -m,则只会看到新的zip文件。

    站长必藏:26个Linux服务器管理常用SSH命令行插图8

    zip压缩文件

    unzip –解压压缩包

    unzip 命令将解压缩目录中的zip文件并提取压缩包里的内容至当前目录。

    unzip twentyseventeen.zip
    unzip twentyseventeen.zip
    unzip twentyseventeen.zip

    如果您没有在压缩时删除原始文件夹,请不要使用这个命令,因为该命令不会覆盖原始文件夹。因此,如果你执行压缩命令时如无需保留原文件夹时,应该使用zip -m命令压缩,又或者使用rm命令来删除原文件夹后再执行解压命令。

    您还可以添加参数来执行不一样的解压操作:

    • unzip filename.zip -x excludedfile.zip 指定不要处理.zip压缩文件中的哪些文件。
    • unzip filename1.zip filename2.zip filename3.zip将解压缩多个文件。您可以根据需要使用任意数量的zip文件,这比在FTP客户端中执行此操作要快得多。

    tar –创建和解压压缩档案

    tar命令用于创建和解压.tar.gz格式的压缩文件,一般情况下我们使用此命令来替代.zip归档文件。

    要压缩文件或文件夹,可以使用tar cvzf命令。压缩文件夹的语法为:

    tar cvzf archivename.tar.gz directoryname
    tar cvzf archivename.tar.gz directoryname
    tar cvzf archivename.tar.gz directoryname

    上面archivename是要创建压缩文件的名称,directoryname则是需要压缩的文件夹的名称。

    与压缩命令对应的解压命令是tar xvzf

    tar xvzf archivename.tar.gz
    tar xvzf archivename.tar.gz
    tar xvzf archivename.tar.gz

    这四个字母代表具体说明:

    • c 告诉tar这是一个压缩文件命令。
    • x 告诉tar这是一个解压文件命令。
    • v 告诉tar在压缩或解压缩过程中显示正在处理的文件名。
    • z 告诉tar通过gzip支持压缩或解压缩。
    • f 告诉tar您需要操作的档案名称,也就是说f后面必须跟上要处理的文件名。。

    文件命令

    以下是专门用于文件处理的最常见SSH命令列表。

    touch –创建一个新文件

    要在服务器上创建一个新的空文件,可以使用touch命令:

    touch style.css
    touch style.css
    touch style.css

    您只能在当前目录中创建文件,因此在使用touch命令之前,您必须通过cd命令进入对应的目录。

    cat –显示文件内容

    要显示文件的内容,使用cat命令。

    站长必藏:26个Linux服务器管理常用SSH命令行插图9

    cat命令

    该命令可以在终端或PuTTY中显示任何文件的全部内容。

    grep –搜索特定短语

    如果您需要某一特定文件上查找的指定内容(尤其是一些内容比较多的文档),则可以使用grep命令搜索特定的内容。

    下面的截图是演示在某一主题的sidebar.php文件中搜索“ sidebar”一词。

    站长必藏:26个Linux服务器管理常用SSH命令行插图10

    grep命令

    使用此命令可以显示指定文件包含搜索词的所有行。

    如果我想搜索不止一个单词的字符串,则需要将其括在英文双引号中:

    grep “nav class” footer.php
    grep “nav class” footer.php
    grep "nav class" footer.php

    grep命令带参数,用于自定义搜索:

    • grep -i "string" filename 在文件中不区分大小写地搜索字符串。
    • grep -c "string" filename 计算文件中字符串的实例数。
    • grep -l "string" * 列出包含字符串的文件。
    • grep -n "string" filename 在指定文件搜该字符串,并显示行号以结果。

    head –读取文件的前10行

    如果您只想读取文件的开头行,可以使用head命令:

    head filename.extension
    head filename.extension
    head filename.extension

    站长必藏:26个Linux服务器管理常用SSH命令行插图11

    head命令

    tail –读取文件的最后10行

    tail命令的工作方式与head命令相同,但是读取文件的最后十行:

    tail filename.extension
    tail filename.extension
    tail filename.extension

    find –搜索文件和目录

    find命令可帮助您搜索文件和目录,并返回符合指定条件的文件和目录。下面的命令将在当前目录中搜索名称包括 “index” 的所有文件:

    find . -name “index”
    find . -name “index”
    find . -name “index”

    find命令语法为:

  • 如何解决SSH连接 “Connection Refused”报错

    错误类型:
    其他错误
    错误名称:
    SSH连接被拒绝
    英文名称:
    Connection Refused
    错误描述:
    不幸的是,当您尝试通过SSH连接到服务器时,可能会发生许多情况,这可能会导致显示“Connection refused(连接被拒绝)”错误。

    ssh-connection-refused-1024x512-1

    随着VPS服务器的流行,SSH也成为了站长必备的开发工具。该工具可授予高级用户访问关键平台和软件的权限,使编码和其他任务更容易,更快速且更有组织性。

    如果经常使用SSH,相信对“Connection refused(连接被拒绝)”错误不会陌生,第一次遭遇这样的错误,甚至可能会让站长手足无措。但,这其实是一个常见问题,完全可以通过简单的故障排除进行修复。

    本文,我们将讨论什么是SSH以及何时使用它。然后,解释一些可能导致SSH连接被拒绝的常见原因,包括在PuTTY中。最后,提供一些故障排除教程。

    1. 什么是SSH,何时应使用它?
    2. 为什么SSH连接被拒绝?
    3. 为什么PuTTY连接被拒绝?
    4. 如何解决SSH连接错误?

    什么是SSH,何时应使用它?

    SSH(全称为Secure Socket Shell)是一种用于通过不安全网络安全访问站点服务器的协议。换句话说,这是一种安全登录远程服务器及使用命令行的终端界面:

    使用SSH访问服务器

    使用SSH访问服务器

    与仅允许您上载,删除和编辑服务器上的文件FTP文件传输协议不同的是,SSH可以完成各种各样的任务。例如,如果WordPress错误使您无法进入网站,则可以通过SSH远程访问服务器。

    该协议支持使用几个关键的开发人员工具,包括:

    • WP-CLI – WordPress命令行。可用于各种任务,包括新安装,批量更新插件和导入媒体文件。
    • Composer – 一个PHP软件包管理器。有了它,你可以提取必要的库和依赖项来编辑网站编码时使用多个框架。
    • Git – 一个版本控制系统用于跟踪码的变化。这对于团队协作项目特别有用。
    • npm – 一个JavaScript包管理器。它包括命令行和JavaScript软件注册表。

    请务必注意,使用SSH需要熟悉服务器运维管理知识。不建议小白用户直接尝试自行解决SSH问题,应该寻求开发人员或服务器提供商帮助。

    SSH很安全高效,但也能够让你感受“一失足千古恨”。输入简单的错误命令可能会导致整个服务器瘫痪,因此,了解自己在做什么至关重要。

    为什么SSH连接被拒绝?

    不幸的是,当您尝试通过SSH连接到服务器时,可能会发生许多情况,这可能会导致显示“Connection refused(连接被拒绝)”错误。

    以下是一些可能会给您带来麻烦的最常见问题。

    1. SSH服务关闭

    使用SSH连接服务器的前提是,服务器必须正常运行SSH daemon-该程序在后台运行以侦听和接收连接。

    如果此服务关闭,您将无法成功连接到服务器,并且可能会收到“Connection refused(连接被拒绝)”错误:

    终端连接被拒绝报错

    终端连接被拒绝报错

    服务器SSH daemon可能由于多种原因而关闭,包括爆发性的流量高峰,数据中心故障,DDoS攻击等。除了将在下面提到的故障排除步骤外,您应该主动联系服务器提供商,以确定问题的根本原因。

    如果您怀疑SSH服务可能已关闭,则可以运行此命令了解:

    sudo service ssh status
    sudo service ssh status
    sudo service ssh status

    如果命令行返回关闭状态,则您可能已经找到导致连接错误的原因。

    2. SSH凭证有误

    一般情况下很少人会犯这个错,但谁能保证呢?

    因此,务必确保在尝试连接服务器时输入正确的凭据信息。

    • 主机名-服务器的IP地址或域名。
    • 用户名-服务器管理员用户名。
    • 密码- 管理员账号对应的密码。
    • 端口-一般默认端口为22。但是,出于安全原因,某些服务器提供商可能会更改SSH端口。

    您还可以通过运行以下命令来检查哪个端口用于SSH:

    grep Port /etc/ssh/sshd_config
    grep Port /etc/ssh/sshd_config
    grep Port /etc/ssh/sshd_config

    因此在无法链接SSH时,应该检查并确保输入正确的凭据,特别要检查是否输入错误的IP地址或端口。

    3. 端口处理关闭状态

    “端口”只是连接到服务器时定向到的端点。除了确保您输入正确的端口之外,您还需要检查使用的端口是否已启用。

    任何开放的端口都是安全漏洞,因为黑客可以尝试利用它并获得对服务器的访问权限。因此,未使用的端口通常会关闭以防止受到攻击。

    如果端口22或自定义SSH端口已关闭,则也可能导致“Connection refused(连接被拒绝)”错误。您可以通过运行以下命令来检查端口是否正在侦听:

    sudo netstat -plnt
    sudo netstat -plnt
    sudo netstat -plnt

    命令行应返回端口及其各自的“状态”列表。如果你要使用的端口为22,那么它的状态应该为LISTEN。如果不是,则需要重新打开端口才能连接到服务器。

    4. 服务器未安装SSH服务

    如前所述,服务器使用SSH daemons侦听并接受连接。因此,如果你需要连接的服务器未安装SSH服务,则将无法使用SSH访问该服务器。

    一般来说,默认情况下,几乎所有VPS服务器都安装了SSH daemon。未安装这种情况多出现在本地主机或专用服务器上。

    5. 防火墙设置拦截了SSH连接

    由于开放端口存在安全风险,因此为保护服务器免受黑客攻击而安装的防火墙有时会拦截服务器连接。不幸的是,服务器管理员尝试通过SSH进入其服务器也可能会由于防火墙设置而收到“拒绝连接”错误。

    如果您的设置似乎都正常,但仍然无法连接,请查看防火墙规则。您可以使用以下命令行来检测:

    sudo iptables-save # display IPv4 rules
    sudo iptables-save # display IPv4 rules
    sudo iptables-save # display IPv4 rules
    sudo ip6tables-save # display IPv6 rules
    sudo ip6tables-save # display IPv6 rules
    sudo ip6tables-save # display IPv6 rules

    返回的信息不尽相同,您需要查找以下元素以确定防火墙是否拦截SSH连接:

    • dport 22:指目标端口,对于SSH,通常是端口22。
    • REJECT:这表明从指定的目的地拒绝连接。
    • DROP:与REJECT一样,这意味着到相关端口的连接被拦截。

    如果在上面关于dport 22的命令结果中搜索,应该能够确定防火墙是否阻止SSH连接。如果是,则必须更改规则以接受请求。

    为什么PuTTY连接被拒绝?

    PuTTY是一款最受欢迎的SSH客户端,帮助站长在SSH协议下安全地连接并管理服务器。与PuTTY相似的另一个客户端是Xshell。

    PuTTY下载页面

    PuTTY下载页面

    如果在使用PuTTY连接服务器时出现“Connection refused(连接被拒绝)”错误,则可能是上面列出的原因之一。

    这是SSH连接错误,无论您使用的是PuTTY,终端还是其他任何通过SSH连接到服务器的软件。

    如何解决SSH连接错误?

    遇到SSH连接错误时,根据原因可以采取一些步骤来进行故障排除。以下是一些技巧,希望能够帮助你解决“Connection refused(连接被拒绝)”错误:

    • 如果是SSH服务已关闭。 请与您的主机提供商联系,以了解为什么您的SSH服务未运行。对于localhost或专用服务器,您可以使用命令  sudo service ssh restart 尝试使其再次运行。
    • 如果是输入了错误SSH凭据。 使用grep Port /etc/ssh/sshd_config 命令仔细检查SSH端口后  ,请尝试使用正确的详细信息再次连接。
    • 如果是SSH端口已关闭。 在要连接的服务器上安装SSH daemon,或更改防火墙规则以接受到SSH端口的连接。
    • 如果是服务器未安装SSH。 使用命令sudo apt install openssh-server在要连接的服务器上安装SSH工具(例如OpenSSH)。
    • 如果是防火墙拦截SSH连接。  通过将目标端口的设置更改为ACCEPT来禁用防火墙规则阻止SSH连接。

    如果你使用的服务器提供技术支持,不妨直接与技术人员联系,比起尝试自行解决问题可能更明智。如果上述解决方案均无效,则可以这方面技术比较靠谱的人员协助,或者通过互联网找找看是否有应对的措施。

    您是否通过SSH收到“Connection refused(连接被拒绝)”错误?借助此指南,了解为什么发生这种情况以及如何解决SSH连接错误。

    小结

    在许多情况下,使用SSH连接服务器很方便。尤其是当您无法访问WordPress仪表板,你还可以通过WP-CLI运行命令,使用Git跟踪站点代码的更改,以恢复站点访问。

    尽管SSH连接错误可能是由多种原因引起的,但以下是一些最常见的原因:

    1. SSH服务已关闭。
    2. SSH连接凭证错误。
    3. SSH端口已关闭。
    4. 服务器未安装SSH。
    5. 防火墙设置拦截了SSH连接。

    相关阅读:《站长必藏:26个Linux服务器管理常用SSH命令行

  • SSH与SSL有什么区别?

    SSH与SSL有什么区别?

    试图了解SSH与SSL之间的区别?

    在非常高的层次上,SSH和SSL都是帮助加密和验证在两台计算机(例如您的笔记本电脑和您网站的服务器)之间传递的数据的技术。基本上,它们使事情变得更加安全。

    然而,虽然它们在某些方面在高层次上是相似的,但它们服务于两个截然不同的目的,因此了解SSH与SSL之间的区别很重要。

    通常,SSL用于加密两个位置之间传输的数据,例如您的Web浏览器和您正在访问的站点的服务器。SSL是在Web浏览器中添加“绿色挂锁”的东西,如果您想在您的网站上安全地接受信用卡信息(或其他敏感数据),它也是您使用的东西。

    另一方面,SSH用于远程登录到另一台计算机(例如Web服务器)并创建安全连接以发出命令(通过SSH隧道)。例如,如果您想连接到站点的服务器以使用WP-CLI执行命令,您将使用SSH。大部分服务器,当您想通过SFTP访问连接到您的服务器时,您还将使用SSH 。

    在本文中,我们将向您介绍SSH和SSL以及它们的用途。然后,我们将更深入地探讨SSH与SSL之间的一些高级和特定技术差异。

    1. 什么是SSH?
    2. 什么是SSL?
    3. SSH与SSL之间的异同
    4. SSH与SSL的技术差异

    什么是SSH?

    SSH代表安全外壳。SSH提供了一种安全的方式来远程登录到另一台计算机并发出命令,例如您网站的服务器。

    使用SSH隧道,您将能够在客户端(例如您的计算机)和服务器(例如您网站的服务器)之间创建加密连接。

    要创建此安全SSH隧道,您需要使用用户名/密码或一组加密公钥/私钥进行身份验证。

    一旦您通过身份验证,您将能够安全地访问信息(例如您站点的文件和数据库)并通过命令行向远程服务器发出命令。

    你用SSH做什么?

    也许更好的问题是“您不能使用SSH做什么?”。一旦您通过SSH连接到您的服务器,您就拥有完全的控制权。只要您了解命令行,就可以执行您想要的任何命令。

    例如,如果您使用的是WordPress,则在连接SSH后,您可以使用WP-CLI与您的WordPress站点和插件进行交互。您可以创建内容、应用更新、管理分类等等。

    除了使用SSH能够通过命令行管理您的服务器之外,SSH还支持另一个重要工具 –  SFTP,SSH文件传输协议(也通常称为安全文件传输协议)的缩写。SFTP允许您通过安全的SSH隧道连接到您的服务器,然后像往常一样使用FTP管理文件。

    因为SFTP比常规未加密的FTP访问安全得多,建议使用SFTP代替FTP访问服务器。

    或者,您也可以使用SS 直接访问您站点的数据库 。

    基本上,一旦您使用SSH连接到您的服务器,您就有了很大的灵活性,因为您可以根据需要执行自己的命令,而SSL则不是这种情况。

    什么是SSL?

    SSL代表安全套接字层。虽然大多数人仍然提到SSL,但从技术上讲,SSL是更现代的传输层安全 (TLS) 协议的旧版本。但是,出于所有实际目的,您可以将SSL和TLS视为同一事物 ,我们将其称为 SSL。

    SSL是一种协议,主要旨在通过加密和身份验证保护两方之间的数据传输。最常见的是,这种传输是在某人的Web浏览器和他们正在访问的网站的服务器之间进行的。

    有几个关键的好处:

    • 加密 – SSL在数据传输过程中对其进行加密,这意味着恶意行为者无法拦截该信息。
    • 身份验证 – SSL还有助于验证数据发送到正确的服务器和从正确的服务器接收,这是防止中间人攻击的另一种方式。
    • 数据完整性 ——最后,SSL还通过确保数据在传输过程中不会丢失或更改来确保数据完整性。

    SSL通过使用证书工作,这就是为什么您会看到诸如“ SSL证书”之类的短语。

    然而,虽然SSL确实有助于对服务器进行身份验证,但它不需要来自客户端(例如网站访问者)的任何身份验证。这与SSH不同,SSH需要来自客户端的身份验证。

    您可以在我们关于SSL工作原理的文章中了解有关SSL的更多信息 。

    SSL证书是每个网站都必须具备的,但如果设置不正确,则可能会发生SSL连接错误

    你用SSL做什么?

    大多数人都知道SSL,因为在网站上安装SSL证书可以让您启用HTTPS 并在访问者的浏览器中获得非常重要的绿色挂锁。

    安装SSL证书并启用HTTPS后,在您的网站和访问者浏览器之间传递的数据将是安全的。

    如果您有任何类型的网站,例如电子商务,您绝对需要安装SSL证书,以便您可以获得上述好处并与您的访问者和搜索引擎(如 Google)建立信任。

    还有一个比较少见的混乱高级玩法,您还可以使用SSL通过FTP安全地传输文件。这称为FTPS,或SSL上的文件传输协议。这与SFTP不同,尽管它也有助于使FTP更安全。

    SSH与SSL之间的异同

    此时,您知道SSH与SSL之间有很多相似之处:

    • 两者都可以帮助您创建安全连接。
    • 两者都对在两个设备之间传递的数据进行加密。

    SSH与SSL之间的主要区别在于,SSH用于创建通往另一台计算机的安全隧道,您可以从中发出命令、传输数据等。

    另一方面,SSL用于在两方之间安全地传输数据——它不允许您像使用SSH那样发出命令。

    例如,假设您在使用笔记本电脑。以下是您何时会遇到每个协议的示例:

    • SSH  – 如果您想安全地连接到您网站的服务器并使用WP-CLI来管理您的WordPress站点,您可以使用SSH。
    • SSL  – 如果您想与网站上的前端表单交互以提交数据,您的服务器将使用SSL来加密表单数据,因为它在您的Web浏览器和您的服务器数据库之间传输。

    只要您安装了SSL证书并启用了HTTPS,访问您网站的每个人都将使用SSL与您网站的服务器进行交互——他们无需进行身份验证即可访问您的网站。

    但是,唯一与SSH交互的人将是您或其他应该可以直接访问您的服务器并且可以使用用户名/密码或加密密钥进行身份验证的技术用户。

    SSH与SSL的技术差异

    SSH与SSL之间当然存在很多技术差异。如果你是一个普通用户,这些对你来说可能没什么意义,但这些对于有技术头脑的人来说很重要:

    SSH SSL
    用于安全地远程连接到另一台机器以发出命令。 用于在两方之间安全传输数据 – 通常是您网站的访问者和您网站的服务器。
    基于网络隧道。 基于数字证书(即SSL证书)
    在端口22上运行 在端口443上运行
    要求客户端使用用户名/密码或加密密钥进行身份验证 只需要服务器端认证(客户端不需要认证)
    是加密网络协议 是安全协议

    小结

    回顾一下,SSH和SSL乍一看很相似,因为它们都可以帮助您创建安全连接。然而,它们有两个截然不同的目的。

    SSL主要用于加密在您网站的访问者和您的服务器之间移动的数据。例如,如果访问者输入他们的信用卡或在登录表单中输入他们的密码,SSL将加密该数据并保护它免受中间人攻击。

    另一方面,SSH用于安全地登录到远程机器,以便您可以发出命令、操作该机器上的文件等。如果您想使用WP-CLI,则需要SSH,通过SFTP、远程访问您的数据库等。

    唯一可以使用SSH连接到您的服务器的人是能够使用用户名/密码或 SSH 密钥进行身份验证的人。