前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LINUX运维学习之综合架构篇——综合架构远程管理服务(SSH)

LINUX运维学习之综合架构篇——综合架构远程管理服务(SSH)

作者头像
云计算小黑
发布2021-06-16 11:23:47
7330
发布2021-06-16 11:23:47
举报
文章被收录于专栏:小黑博客

1、远程管理服务概念

SSH是一个安全的远程连接,它的数据信息是加密的,端口号为22,SSH服务默认可以为root用户连接。 TELNET是一个不安全的远程连接,它的数据信息为明文,端口号为23,默认不可以用root用户连接。

2、SSH服务连接工作原理(数据加密)

(1)客户端 执行远程连接命令 (2)客户端 服务端 建立三次握手过程 (3)服务端 让客户端进行确认是否接收服务端公钥信息 (4)客户端 进行公钥确认,接收公钥信息 (5)服务端 让客户端确认登录用户密码信息 (6)客户端 进行密码信息确认 (7)客户端 服务器 远程连接建立成功

3、私钥和公钥的作用:

  1. 利用私钥和公钥对数据信息进行加密处理
  2. 利用公钥和私钥进行用户身份认证 基于密码的方式进行远程连接: 公钥和私钥只能完成数据加密过程

基于秘钥的方式进行远程连接: 公钥和私钥可以完成身份认证工作

4、SSH远程连接方式

  • 基于口令的方式进行远程连接,连接比较麻烦 不太安全
  • 基于密钥的方式进行远程连接,连接方便 比较安全

基于秘钥方式连接过程(原理)

  1. 客户端(管理端) 执行命令创建秘钥对
  2. 客户端(管理端) 建立远程连接(口令),发送公钥信息
  3. 客户端(管理端) 再次建立远程连接
  4. 服务端(被管理端) 发送公钥质询信息
  5. 客户端(管理端) 处理公钥质询信息,将质询结果返回给服务端
  6. 服务端(被管理端) 接收到质询结果,建立好远程连接

5、SSH实现基于密钥连接的部署步骤

(1)创建一个密钥对信息

代码语言:javascript
复制
    ssh-keygen -t dsa
请输入图片描述
请输入图片描述

(2)管理端需要将公钥进行分发

代码语言:javascript
复制
    ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.31
请输入图片描述
请输入图片描述

(3)远程测试

代码语言:javascript
复制
    ssh root@172.16.1.31 hostname
    ssh 172.16.1.31
请输入图片描述
请输入图片描述

6、如何不用交互输入密码信息

(1)安装软件

代码语言:javascript
复制
    yum install -y sshpass

(2)执行免交互式分发公钥信息

代码语言:javascript
复制
    sshpass -p 123456 ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.41
请输入图片描述
请输入图片描述

(3)如何不要输入连接yes或no的确认信息

代码语言:javascript
复制
    ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.41 "-o StrictHostKeyChecking=no"

(4)服务端口号发生变化

代码语言:javascript
复制
    sshpass -p 123456 ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.41 "-o StrictHostKeyChecking=no"

7、分发公钥脚本

代码语言:javascript
复制
    vim fenfa_pub_key.sh
    #!/bin/bash
    for ip in {7,31,41}
    do
       echo "================= host 172.16.1.$ip pub-key start fenfa ======="
       sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.$ip "-o StrictHostKeyChecking-no" &>/dev/null
       echo "host 172.16.1.$ip fenfa success"
       echo "================= host 172.16.1.$ip fenfa end ==================="
       echo ""
    done
请输入图片描述
请输入图片描述

8、SSH服务配置文件

代码语言:javascript
复制
    /etc/ssh/sshd_config
    Port 22                   --- 修改服务端口信息
    ListenAddress 0.0.0.0     --- 监听地址 指定一块网卡能够接受远程访问请求  
                                  PS: 指定监听地址只能是本地网卡上有的地址
    PermitEmptyPasswords no   --- 是否允许远程用户使用空密码登录,默认不允许
    PermitRootLogin yes       --- 是否禁止root用户远程连接主机 建议改为no
    GSSAPIAuthentication no   --- 是否开启GSSAPI认证功能 不用的时候关闭 
    UseDNS no                 --- 是否开启反向DNS解析功能 建议进行关闭

9、SSH远程服务防范入侵的案例

1、用密钥登录,不用密码登陆 2、牤牛阵法:解决SSH安全问题 a.防火墙封闭SSH,指定源IP限制(局域网、信任公网) b.开启SSH只监听本地内网IP(ListenAddress 172.16.1.61)。 3、尽量不给服务器外网IP 4、最小化(软件安装-授权) 5、给系统的重要文件或命令做一个指纹 /etc/passwd md5sum 11110000aaaabbbb 监控 inotify /bin 监控 6、给他锁上 chattr +i PS:SSH相关的命令总结

代码语言:javascript
复制
    ssh-keygen
    ssh-copy-id
    sshpass 
    ssh 
    scp 
    sftp 172.16.1.41
    ls       查看远程ftp服务器信息
    cd   --- 查看远程ftp服务器信息
    lls      查看本地ftp客户端信息
    lcd  --- 查看本地ftp客户端信息
    get  --- 下载信息
    put  --- 上传信息
    help --- 查看命令帮助
    bye  --- 退出ftp连接
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、远程管理服务概念
  • 2、SSH服务连接工作原理(数据加密)
  • 3、私钥和公钥的作用:
  • 4、SSH远程连接方式
  • 5、SSH实现基于密钥连接的部署步骤
  • 6、如何不用交互输入密码信息
  • 7、分发公钥脚本
  • 8、SSH服务配置文件
  • 9、SSH远程服务防范入侵的案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档