云计算【第一阶段(29)】远程访问及控制

07-12 956阅读

一、ssh远程管理

1.1、ssh (secureshell)协议

  • 是一种安全通道协议
  • 对通信数据进行了加密处理,用于远程管理功能
  • SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,
  • 建立在应用层和传输层基础上的安全协议。
  • SSH客户端SSH服务端

    数据传输是加密的,可以防止信息泄漏

    数据传输是压缩的,可以提高传输速度

    1.2、openssh

    服务名称:sshd

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

    服务端配置文件:/etc/ssh/sshd config

    SSH客户端: Putty、 Xshell、 CRT、MobaXterm、FinalShell

    SSH服务端: OpenSSH

    SSH服务端: 默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)

    ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务

    作用:SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。

    相比较之前用 Telnet 方式来传输文件要安全很多,因为 Telnet 使用明文传输,SSH 是加密传输。

    OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动

    【但是是7的版本有问题漏洞需要升级,目前最新为9.8】

    查看版本  :ssh  -V

    执行"systemctl start sshd"命令即可启动sshd 服务

    ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

    远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是以明文传送用户认证信息, 本质上是不安全的,存在被网络窃听的危险。SSH(Secure Shell)目前较可靠,

     是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

     

     1.3、ssh远程登录方式

    1.3.1、登录 方法一

    ssh [远程主机用户名] @[远程服务器主机名或IP地址] -p port

    如果你想要以用户名为lisi的身份连接到IP地址为192.168.1.100的服务器,并且该服务器的SSH服务运行在端口22上,你应该使用以下命令:

    当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh   IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。
    

    云计算【第一阶段(29)】远程访问及控制

    主机映射

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    1.3.2、登录 方法二

    ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port

    -l :-l 选项,指定登录名称。

    -p:-p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)

    云计算【第一阶段(29)】远程访问及控制

     (不怎么用)

     关于公钥的查询

    在客户端查询

    云计算【第一阶段(29)】远程访问及控制

    服务端查询自己的公钥

    云计算【第一阶段(29)】远程访问及控制

    注:第一次登录服务器时系统没有保存远程主机的信息,为了确认该主机身份会提示用户是否继续连接,输入yes 后登录,这时系统会将远程服务器信息写入用户主目录下的$HOME/.ssh/known_hosts文件中,下次再进行登录时因为保存有该主机信息就不会再提示了

    云计算【第一阶段(29)】远程访问及控制

    当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

      解决办法

    1. 登录ssh连接远程主机时加上“-o StrictHostKeyChecking=no”的选项,如下:

      ssh -o StrictHostKeyChecking=no 192.168.xxx.xxx

    2. 一个彻底去掉这个提示的方法是,修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下两行配置:

    StrictHostKeyChecking no

    UserKnownHostsFile /dev/null

    但是最好不要添加

    二、服务配置与管理

    一般配置服务端

    vim  /etc/ssh/sshd_config

    端口要改,防止别人暴力破解

    ListenAddress     设置SSHD服务器绑定的IP 地址,0.0.0.0 表示侦听所有地址

    安全建议:如果主机不需要从公网ssh访问,可以把监听地址改为内网地址 这个值可以写成本地IP地址,也可以写成所有地址,即0.0.0.0 表示所有IP。

    云计算【第一阶段(29)】远程访问及控制

    当有人使用 SSH 登入系统的时候,SSH 会记录信息,这个信息要记录的类型为AUTHPRIV,sshd 服务日志存放在:/var/log/secure。

    云计算【第一阶段(29)】远程访问及控制

    一般来说,为了要判断客户端来源是正常合法的,因此会使用 DNS 去反查客户端的主机名, 但通常在内网互连时,该基设置为 no,因此使联机速度会快些

    注:禁用DNS反向解析,以提高服务器的响应速度

    云计算【第一阶段(29)】远程访问及控制

    以及一些安全配置,安全调优

    云计算【第一阶段(29)】远程访问及控制

    PermitRootLogin 是否允许 root 登入,默认是允许的,但是建议设定成 no,真实的生产环境服务器,是不允许root 账号直接登陆的,仅允许普通用户登录,需要用到 root 用户再切换到root 用户。

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    PasswordAuthentication yes

    密码验证当然是需要的,所以这里写 yes可以,也可以设置为 no,在真实的生产服务器上,根据不同安全级别要求,有的是设置不需要密码登陆的,通过认证的秘钥来登陆。

    云计算【第一阶段(29)】远程访问及控制

    PermitEmptyPasswords no  

    是否允许空密码的用户登录,默认为no,不允许空密码登录

    云计算【第一阶段(29)】远程访问及控制

    PrintLastLog yes

    显示上次登入的信息!默认为 yes 

    云计算【第一阶段(29)】远程访问及控制

    MaxAuthTries 6

    指定每个连接最大允许的认证次数。默认值是 6 。

    如果失败认证的次数超过这个数值的一半,连接将被强制断开,且会生成额外的失败日志消息

    默认3次

    云计算【第一阶段(29)】远程访问及控制

    开启pam模块

    注释

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    黑白名单

    AllowUsers

    当希望只允许或禁止某些用户登录时,可以使用 AllowUsers 或 DenyUsers 配置,两者 用法类似(注意不要同时使用)。

    配置AllowUsers

    例如,若只允许 zhangsan、wangwu  用户登录其他(lisi)用户

    添加

    AllowUsers zhangsan@192.168.10.10 wangwu

    三、使用密钥登录

    分为3步:

    客户机在Xshell客户端中,成密钥(公钥与私钥);

    放置公钥  到linux服务器的 ~/.ssh/authorized_key文件中;

    配置ssh客户机(Xshell客户端)使用密钥登录

    3.1、在xshell中密钥登录

    1. 在xshell  工具中首先生成公钥

    云计算【第一阶段(29)】远程访问及控制

    调整2048长度,下一步就行,可以设置名称和密码

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    生成完成之后会有一个公钥,保存

    云计算【第一阶段(29)】远程访问及控制

    pub结尾的文件

    云计算【第一阶段(29)】远程访问及控制

    然后打开我们的linux机器

    切换到~/.shh目录下(第一次免密需要ssh一下,否则可能没有.shh文件)

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    上传公钥

    云计算【第一阶段(29)】远程访问及控制

    当然还需要改为标准的名称authorized_keys云计算【第一阶段(29)】远程访问及控制

    生成私钥备份

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    免密登录

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    登录成功

    云计算【第一阶段(29)】远程访问及控制

    3.1.1、使用密钥登录的过程

    云计算【第一阶段(29)】远程访问及控制

    3.2、在linux上生成密钥登录

    准备一个跳板机

    ssh-keygen 命令的“-t”选项用于指定算法类型  生成公钥和私钥

    云计算【第一阶段(29)】远程访问及控制

    ssh-copy-id root@192.168.88.19

    使用 ssh-copy-id 工具:这将自动处理公钥的复制过程,这个命令会自动处理将你的 id_rsa.pub 公钥内容追加到远程服务器上的 ~/.ssh/authorized_keys 文件中。

     输入密码:由于这是你第一次以这种方式连接到远程服务器,系统可能会要求你输入远程 root 用户的密码。

    云计算【第一阶段(29)】远程访问及控制

     通过跳板机79登录19

    ssh root@192.168.88.19

    云计算【第一阶段(29)】远程访问及控制

    修改权限

    vim /etc/ssh/sshd_config

    云计算【第一阶段(29)】远程访问及控制

    在17,43,65行

    云计算【第一阶段(29)】远程访问及控制

    重启sshd服务

    云计算【第一阶段(29)】远程访问及控制

    再尝试

    云计算【第一阶段(29)】远程访问及控制

     指定端口,成功云计算【第一阶段(29)】远程访问及控制

    四、Linux服务器升级openssh9.8最新版

    内容迁移到文件资源中

    默认禁用了DSA签名算法

    云计算【第一阶段(29)】远程访问及控制

    云计算【第一阶段(29)】远程访问及控制

    准备文件

    openssh官网OpenSSH: Release Notes

    云计算【第一阶段(29)】远程访问及控制

    由于openssh9.8p1要求openssl版本大于等于1.1.1,因此需要升级安装openssl。

    官网Release OpenSSL 1.1.1v · openssl/openssl · GitHub

    云计算【第一阶段(29)】远程访问及控制

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]