zoukankan      html  css  js  c++  java
  • SSL协议

    概述

    SSH是(Secure SHell protocol) 的简写,安全外壳协议(SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。  
      OpenSSH 是SSH (Secure SHell)协议的免费开源实现。SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程的中的数据,并由此来代替原来的类似服务。
      在过去我们使用的rsh和telnet,因为包括登录时的ID和密码数据没有加密就传到网络上,存在安全上的问题。即使在内部网上,也有在因特网上的窃取和篡改等危险性。SSH将包括密码在内的所有数据都已进行了加密处理,可以进行更安全的远程操作。在SSH中,由于协议标准的不同而存在SSH1和SSH2两个不同的版本。SSH2是为了回避SSH1所使用的加密算法的许可证问题而开发的(现在这一许可证问题已经不存在了)。TLES 8中作为安装SSH协议的应用程序采用了开放源码的OpenSSH。OpenSSH与SSH1和SSH2的任何一个协议都能对应,但默认使用SSH2。

    更详细的说明以及安装使用,请参考官网:http://www.openssh.com/

    主要功能

    • 类似 telnet 的远程联机使用 shell 的服务器,即 ssh。
    • 类似 FTP 服务的 sftp-server ,提供更安全的 FTP 服务。



    SSH 功能

    工作原理

    ssh 工作原理
    1. 服务器建立公钥: 每一次启动 sshd 服务时,该服务会主动去找 /etc/ssh/ssh_host* 的文件,若系统刚刚安装完成时,由于没有这些公钥,因此 sshd 会主动去计算出这些需要的公钥,同时也会计算出服务器自己需要的私钥。
    • 客户端主动联机请求: 若客户端想要联机到 ssh 服务器,则需要使用适当的客户端程序来联机,包括 ssh, putty 等客户端程序连接。
    • 服务器传送公钥给客户端: 接收到客户端的要求后,服务器便将第一个步骤取得的公钥传送给客户端使用 (此时应是明码传送,反正公钥本来就是给大家使用的)。
    • 客户端记录并比对服务器的公钥数据及随机计算自己的公私钥: 若客户端第一次连接到此服务器,则会将服务器的公钥记录到客户端的用户家目录内的 ~/.ssh/known_hosts 。若是已经记录过该服务器的公钥,则客户端会去比对此次接收到的与之前的记录是否有差异。若接受此公钥, 则开始计算客户端自己的公私钥。
    • 回传客户端的公钥到服务器端: 用户将自己的公钥传送给服务器。此时服务器:具有服务器的私钥与客户端的公钥,而客户端则是: 具有服务器的公钥以及客户端自己的私钥,你会看到,在此次联机的服务器与客户端的密钥系统 (公钥+私钥) 并不一样,所以才称为非对称加密系统。
    • 开始双向加解密: (1)服务器到客户端:服务器传送数据时,拿用户的公钥加密后送出。客户端接收后,用自己的私钥解密 (2)客户端到服务器:客户端传送数据时,拿服务器的公钥加密后送出。服务器接收后,用服务器的私钥解密,这样就能保证通信安全。

    组成

    SSH 主要有三部分组成:

    1. 传输层协议 [SSH-TRANS] 提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在 TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。
    • 用户认证协议 [SSH-USERAUTH] 用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当 SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希 H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。
    • 连接协议 [SSH-CONNECT] 将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。
        一旦建立一个安全传输层连接,客户机就发送一个服务请求。当用户认证完成之后,会发送第二个服务请求。这样就允许新定义的协议可以与上述协议共存。连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发(“隧道技术”)专有 TCP/IP 端口和 X11 连接。
        通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。
    • 传输层协议(The Transport Layer Protocol)提供服务器认证,数据机密性,信息完整性 等的支持;
    • 用户认证协议(The User Authentication Protocol) 则为服务器提供客户端的身份鉴别;
    • 连接协议(The Connection Protocol) 将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用; 各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制。

    同时SSH协议框架中还为许多高层的网络安全应用协议提供扩展的支持。它们之间的层次关系可以用如下图来表示:

    SSH协议框架

    认证方式

    • 基于口令的认证:这个就不用说了,就是输入用户名和密码
    • 基于密钥的认证,具体步骤如下:
        (1).客户端建立两把钥匙(公钥与私钥)
        (2).将公钥数据上传到服务器上
        (3).将公钥放置服务器端的正确目录与文件名(scp 或 ssh-copy-id)

    对于SSH这样以提供安全通讯为目标的协议,其中必不可少的就是一套完备的密钥机制。由于SSH协议是面向互联网网络中主机之间的互访与信息交换,所以主机密钥成为基本的密钥机制。也就是说,SSH协议要求每一个使用本协议的主机都必须至少有一个自己的主机密钥对,服务方通过对客户方主机密钥的认证之后,才能允许其连接请求。一个主机可以使用多个密钥,针对不同的密钥算法而拥有不同的密钥,但是至少有一种是必备的,即通过 DSS算法产生的密钥。关于DSS算法,请参考FIPS-186 文档.SSH协议关于主机密钥认证的管理方案有两种,如下图所示:




      每一个主机都必须有自己的主机密钥,密钥可以有多对,每一对主机密钥对包括公开密钥和私有密钥。在实际应用过程中怎样使用这些密钥,并依赖它们来实现安全特性呢?如上图所示,SSH协议框架中提出了两种方案。
      在第一种方案中,主机将自己的公用密钥分发给相关的客户机,客户机在访问主机时则使用该主机的公开密钥来加密数据,主机则使用自己的私有密钥来解密数据,从而实现主机密钥认证,确定客户机的可靠身份。在图2(a)中可以看到,用户从主机A上发起操作,去访问,主机B和主机C,此时,A成为客户机,它必须事先配置主机B和主机C的公开密钥,在访问的时候根据主机名来查找相应的公开密钥。对于被访问主机(也就是服务器端)来说则只要保证安全地存储自己的私有密钥就可以了。 
      在第二种方案中,存在一个密钥认证中心,所有系统中提供服务的主机都将自己的公开密钥提交给认证中心,而任何作为客户机的主机则只要保存一份认证中心的公开密钥就可以了。在这种模式下,客户机在访问服务器主机之前,还必须向密钥认证中心请求认证,认证之后才能够正确地连接到目的主机上。
      很显然,第一种方式比较容易实现,但是客户机关于密钥的维护却是个麻烦事,因为每次变更都必须在客户机上有所体现;第二种方式比较完美地解决管理维护问题,然而这样的模式对认证中心的要求很高,在互联网络上要实现这样的集中认证,单单是权威机构的确定就是个大麻烦,有谁能够什么都能说了算呢?但是从长远的发展来看,在企业应用和商业应用领域,采用中心认证的方案是必要的。
      另外,SSH协议框架中还允许对主机密钥的一个折中处理,那就是首次访问免认证。首次访问免认证是指,在某客户机第一次访问主机时,主机不检查主机密钥,而向该客户都发放一个公开密钥的拷贝,这样在以后的访问中则必须使用该密钥,否则会被认为非法而拒绝其访问。

    工作过程

    在整个通讯过程中,为实现 SSH的安全连接,服务器端与客户端要经历如下五个阶段:
    * 版本号协商阶段,SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的版本
    * 密钥和算法协商阶段,SSH支持多种加密算法, 双方根据本端和对端支持的算法,协商出最终使用的算法
    * 认证阶段,SSH客户端向服务器端发起认证请求, 服务器端对客户端进行认证
    * 会话请求阶段, 认证通过后,客户端向服务器端发送会话请求
    * 交互会话阶段 ,会话请求通过后,服务器端和客户端进行信息的交互

    1. 版本号协商阶段
        1. 服务器打开端口 22,等待客户端连接。
        2. 客户端向服务器端发起 TCP初始连接请求,TCP连接建立后,服务器向客户端发送第一个报文,包括版本标志字符串,格式为“SSH-<主协议版本号>.<次协议版本号>-<软件版本号>”,协议版本号由主版本号和次版本号组成,软件版本号主要是为调试使用。
        3. 客户端收到报文后,解析该数据包,如果服务器端的协议版本号比自己的低,且客户端能支持服务器端的低版本,就使用服务器端的低版本协议号,否则使用自己的协议版本号。
        4. 客户端回应服务器一个报文,包含了客户端决定使用的协议版本号。服务器比较客户端发来的版本号,决定是否能同客户端一起工作。
        5. 如果协商成功,则进入密钥和算法协商阶段,否则服务器端断开 TCP连接。

    Note: 版本号协商阶段报文都是采用明文方式传输的。

    • 密钥和算法协商阶段
        1. 服务器端和客户端分别发送算法协商报文给对端,报文中包含自己支持的公钥算法列表、加密算法列表、MAC(Message Authentication Code,消息验证码)算法列表、压缩算法列表等;
        2. 服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法。
        3. 服务器端和客户端利用 DH交换(Diffie-Hellman Exchange)算法、主机密钥对等参数,生成会话密钥和会话 ID。

      通过以上步骤,服务器端和客户端就取得了相同的会话密钥和会话ID。
          * 对于后续传输的数据,两端都会使用会话密钥进行加密和解密,保证了数据传送的安全
          * 在认证阶段,两端会使用会话 ID用于认证过程。
      

    Note:
      在协商阶段之前,服务器端已经生成 RSA或 DSA密钥对,他们主要用于参与会话密钥的生成。

    • 认证阶段
        1. 客户端向服务器端发送认证请求,认证请求中包含用户名、认证方法、与该认证方法相关的内容(如:password认证时,内容为密码)。
        2. 服务器端对客户端进行认证,如果认证失败,则向客户端发送认证失败消息,其中包含可以再次认证的方法列表。
        3. 客户端从认证方法列表中选取一种认证方法再次进行认证。
        4. 该过程反复进行, 直到认证成功或者认证次数达到上限, 服务器关闭连接为止。

    SSH提供两种认证方式:
      1. password认证:客户端向服务器发出 password认证请求,将用户名和密码加密后发送给服务器;服务器将该信息解密后得到用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败的消息。
      2. publickey 认证:采用数字签名的方法来认证客户端。目前,设备上可以利用RSA和 DSA两种公共密钥算法实现数字签名。客户端发送包含用户名、公共密钥和公共密钥算法的 publickey 认证请求给服务器端。服务器对公钥进行合法性检查,如果不合法,则直接发送失败消息;否则,服务器利用数字签名对客户端进行认证,并返回认证成功或失败的消息
    SSH2.0还提供了 password-publickey 认证和 any 认证:
      1. password-publickey 认证:指定该用户的认证方式为 password 和 publickey认证同时满足。客户端版本为 SSH1的用户只要通过其中一种认证即可登录;客户端版本为 SSH2的用户必须两种认证都通过才能登录。
      2. any认证:指定该用户的认证方式可以是 password,也可以是 publickey。

    • 会话请求阶段

      1. 服务器等待客户端的请求;
      2. 认证通过后,客户端向服务器发送会话请求;
      3. 服务器处理客户端的请求。请求被成功处理后, 服务器会向客户端回应 SSH_SMSG_SUCCESS包,SSH进入交互会话阶段;否则回应 SSH_SMSG_FAILURE包,表示服务器处理请求失败或者不能识别请求。
    • 交互会话阶段
      在这个模式下,数据被双向传送:
        1. 客户端将要执行的命令加密后传给服务器;
        2. 服务器接收到报文,解密后执行该命令,将执行的结果加密发还给客户端;
        3. 客户端将接收到的结果解密后显示到终端上.

    SSH Q&A

    Q1: SSH的版本和区别。
      SSH2避免了RSA的专利问题,并修补了CRC的缺陷。SSH2用数字签名算法(DSA)和Diffie-Hellman(DH)算法代替RSA来完成对称密钥的交换,用HMAC来代替CRC。同时SSH2增加了AES和Twofish等对称加密算法。
      A1: SSH(Secure SHell)到目前为止有两个不兼容的版本——SSH1和SSH2。SSH1又分为1.3和1.5两个版本。SSH1采用DES、3DES、 Blowfish和RC4等对称加密算法保护数据安全传输,而对称加密算法的密钥是通过非对称加密算法(RSA)来完成交换的。SSH1使用循环冗余校验码(CRC)来保证数据的完整性,但是后来发现这种方法有缺陷。
    更多内容请参考The SSHv1 Protocol & The SSHv2 Protocol

    Q2: 什么是HMAC?
      A2: HMAC(Hash Message Authentication Code) ,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。

    Q3: 什么是X11 forwarding?
      A3: sh的X11 forwarding特性可以使X client和X server安全地通讯。使用X11 forwarding后,从X client到X Server方向的数据先被送至ssh server,ssh server利用和ssh client的安全通道转发给ssh client,再由ssh client转发给X server,从X server到X client的数据流同理。这里ssh server和ssh client充当了X client和X server间数据的转发器,由于ssh server和X client、ssh client和X server一般在同一台机器上,它们之间是一种安全的进程间通讯,而ssh server和ssh client间的通讯也是安全的,所以X client和X server间的通讯就是安全的。

    Q4: 什么是TTY?
      A4: 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是 Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机,是由Teletype公司生产的。设备名放在特殊文件目录/dev/下。

    Q5: 简单描述下SSH运行的过程?

    A5:简要过程如下
    * Client端向Server端发起SSH连接请求。
    * Server端向Client端发起版本协商。
    * 协商结束后Server端发送Host Key公钥 Server Key公钥,随机数等信息。到这里所有通信是不加密的。
    * Client端返回确认信息,同时附带用公钥加密过的一个随机数,用于双方计算Session Key。
    * 进入认证阶段。从此以后所有通信均加密。
    * 认证成功后,进入交互阶段。

    一、 前言

    使用SSH可以在本地主机和远程服务器之间进行加密地传输数据,实现数据的安全。而OpenSSH是SSH协议的免费开源实现,它采用安全、加密的网络连接工具代替了telnet、ftp等古老明文传输工具。

    SSH(Secure Shell)是建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登陆会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

    SSH可以将所有的传输数据加密,这样“中间人”这种攻击方式就不可能实现了,而且也可以防止DNS和IP欺骗。还有一个额外的好处就是传输的数据经过压缩的,可以加快传输的速度。

    二、 SSH工作原理

    SSH是由服务端和客户端的软件组成,服务端是一个守护进程,它在后台运行并响应来自客户端的连接请求。

    SSH的工作机制大体是:本地客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH客户端,本地再将密钥发回给服务端,到此为止,连接建立。

    启动SSH服务器后,sshd进程运行并在默认的22端口进行监听。安全验证方式:

    基于口令的安全验证(账号密码),也有可能受到中间人攻击
    
    基于密钥的安全验证,就是提供一对密钥,把公钥放在需要访问的服务器上,如果连接到SSH服务器上,客户端就会向服务器发出请求,请求用密钥进行安全验证,服务器收到请求之后,先在改服务器的主目录下寻找公钥,然后把它和发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”并把它发送给客户端。客户端收到“质询”之后就可以用私钥解密再把它发给服务器端。基于这种方式,相对比较安全。

    三、OpenSSH服务器安装和配置,客户端一般都有

    先查看Linux系统中openssh-server、openssh、openssh-clients、openssh-askpass软件包是否已经安装,如果没有则安装。

    依赖关系太多了,固用yum方式安装:yum install openssh-askpass -y

    好了,都装好了。

    四、客户端配置

    ssh: 配置文件 /etc/ssh/ssh_config

    1、客户端程序

    ssh [options] [user@]host [COMMAND]
    ssh [-l user] [options] host [COMMAND]
    
    常用选项:
    -l user:以指定的用户登录远程主机;
    -p port:用于指明远程服务器的端口;远程服务器端口可变。
    -X:支持 X11 转发;
    -Y:支持信任的 X11 转发;
        X:协议; x-window, C/S
        X11 转发的作用:在本地显示远程主机上的图形窗口;
        前提:本地是 X 图形界面,或者提供了 x service;
    -o StrictHostKeyChecking=no  是不是要对主机严格检查,建议no。
    
    
    ssh 支持的用户认证方式:
        基于口令的认证;
        基于密钥的认证;
    (1) 在本地主机生成一对儿密钥:
        ssh-keygen [-q] [-b bits] [-t type] [-f output_keyfile] [-P passphrase]
    
        -t {rsa|ecdsa|dsa}:公钥加密算法类型;
        -b bits:指明密钥长度;
        -P passphrase:私钥加密密码;
        -f output_keyfile:生成密钥的保存位置;
    
    (2) 在本地主机上,将公钥复制到要登录的远程主机的某用户的家目录下的特定文件中(~/.ssh/authorized_keys)
    
        ssh-copy-id [-i [identity_file]] [-p port] [-o ssh_option][user@]hostname
    
    (3) 测试
        ssh user@host

    例子:客户端ip:192.168.1.120 服务端ip:192.168.1.109


    生成公钥:


    测试:



    删除密钥 :rm -rf .ssh/id_rsa*

    2、scp命令,类似与cp

    将本地的/etc/fstab 复制到服务端主机的/tmp目录下

    将远程主机上的的/root/1.sh复制过来

    3、sftp安全的文件传输程序,类似于ftp,它的所有操作都是加密ssh传输。

    连接至远程主机,可以get一些资源

    五、服务器端配置

    sshd:配置文件 /etc/ssh/sshd_config

    几个主要的配置如下:

    Port 22   服务器监听的端口,默认为22
    
    ListenAddress 0.0.0.0   服务器端的ip地址
    Protocol 2              ssh protocol有两个版本,1不安全
    PermitRootLogin yes 设置root用户能否使用ssh登陆  建议用no
    UseDNS no   要不要反解用户的主机名
    
    限制可登录的用户(配置文件):
        AllowUsers user1 user2 user3 ...   白名单
        AllowGroups grp1 grp2 ...
        DenyUsers user1 user2 ...
        DenyGroups grp1 grp2 ...        黑名单
    
    CentOS 6:
        服务脚本:/etc/rc.d/init.d/sshd
    CentOS 7:
        Systemd Unit File:/usr/lib/systemd/system/sshd.service

    六、ssh 服务的最佳实践:

    1、不要使用默认端口;

    2、禁止使用 protocol version 1;

    3、限制可登录的用户;

    4、设定空闲会话超时时长;

    5、利用防火墙设置 ssh 访问策略;

    6、仅监听特定的 IP 地址;

    7、基于口令认证时,使用强密码策略; tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs

    8、使用基于密钥的认证;

    9、禁止使用空密码;

    10、禁止 root 用户直接登录;

    11、限制 ssh 的访问频度和并发在线数;

    12、做好日志,经常分析; /var/log/secure

    Telnet与SSH两大协议的区别

    作为系统管理员,我们的重要职责之一就是管理并监控生产服务器和企业服务器,更新服务器内核,安装最新的软件包和补丁,以及每天执行其他服务器常规任务,同时远程访问服务器。

    其实有两大协议可用于访问服务器:

    •Telnet

    •SSH

    不妨逐个讨论这两大协议:

    Telnet

    1. Telnet是电信(Telecommunications)和网络(Networks)的联合缩写,这是一种在UNIX平台上最为人所熟知的网络协议。

    2. Telnet使用端口23,它是专门为局域网设计的。

    3. Telnet不是一种安全通信协议,因为它并不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码,所以谁都能嗅探数据包,获得这个重要信息。

    4. Telnet中没有使用任何验证策略及数据加密方法,因而带来了巨大的安全威胁,这就是为什么telnet不再用于通过公共网络访问网络设备和服务器。

    5. 在Linux系统上,telnet很容易使用yum来安装:

    [root@pbx2 ~]# yum install telnet

    telnet的最佳用途就是检查远程主机上任何特定服务的状态。比如说,如果我们想要检查在本地服务器上通过端口80运行的Apache Web服务的状态,可以这么做:

    [root@pbx2 ~]# telnet localhost 80

    Trying ::1…

    telnet: connect to address ::1: Connection refused

    Trying 127.0.0.1…

    telnet: connect to address 127.0.0.1: Connection refused

    [root@pbx2 ~]#

    现在,我们可以看到,该Web服务已被停止,telnet也无法连接,所以我们不得不在服务器上重启服务,如下所示:

    [root@pbx2 ~]# service httpd restart

    Stopping httpd: [FAILED]

    Starting httpd: [ OK]

    现在再次检查:

    [root@pbx2 ~]# telnet localhost 80

    Trying ::1…

    Connected to localhost.

    Escape character is ‘^]’.

    ^]

    telnet> quit

    Connection closed.

    所以apache服务现已运行,以同样方式检查服务器上通过端口运行的SSH守护程序的状态:

    [root@pbx2 ~]# telnet localhost 22

    Trying ::1…

    Connected to localhost.

    Escape character is ‘^]’.

    SSH-2.0-OpenSSH_5.3

    ^]

    telnet> quit

    Connection closed.

    SSH

    1. SSH代表安全外壳(Secure Shell),它现在是通过互联网访问网络设备和服务器的唯一的主要协议。

    2. SSH默认情况下通过端口22运行;不过,很容易更改这个端口。

    3. SSH是一种非常安全的协议,因为它共享并发送经过加密的信息,从而为通过互联网等不安全的网络访问的数据提供了机密性和安全性。

    4. 一旦通讯的数据使用SSH经过加密,就极难解压和读取该数据,所以我们的密码在公共网络上传输也变得很安全。

    5. SSH还使用公钥用于对访问服务器的用户验证身份,这是一种很好的做法,为我们提供了极高的安全性。

    6.SSH主要用在所有流行的操作系统上,比如Unix、Solaris、Red-Hat Linux、CentOS和Ubuntu等。

    1. 我们可以更改服务器的SSH端口,具体如下所示:

    [root@pbx2 ssh]# vim /etc/ssh/sshd_config

    打开该配置文件后,寻找Port,其在默认情况下应该会采用如下所示的注释:

    Port 22

    去掉注释,更改端口,比如我就将它改成了端口10089。

    Port 10089

    保存文件后退出,使用下面这个命令,对SSH守护程序进行重置:

    service sshd restart

    我们还可以禁用服务器的根访问权,只要在同一个文件中稍微改动一下,搜索下面这个参数:

    PermitRootLogin yes

    去掉注释,把“yes”换成“no”

    PermitRootLogin no

    结束语

    以上这些是针对Linux服务器的非常基本的安全技巧,我们会在下一篇文章中着重介绍重要的Linux安全加固技巧。通过Telnet或SSH访问服务器的知名工具则有Putty、MTPutty和Secure CRT。到目前为止,SSH是最主要的访问协议,它还用于访问思科设备。

  • 相关阅读:
    JS如何判断是否已经引入某个css或是js?
    FILTER:progid:DXImageTransform.Microsoft.Gradient使用
    根据ip查询ip归属地
    java判断是否是合法IP
    jQuery下实现等待指定元素加载完毕(可改成纯js版)
    jsp 循环数字
    jsp获取当前日期
    MyBatis In的使用
    给半径求圆面积
    实现一个数值加法函数,返回两个数字的和。要求能进行参数验证,若参数不是数字或为空则抛出异常。
  • 原文地址:https://www.cnblogs.com/aisa/p/8624959.html
Copyright © 2011-2022 走看看