#!/bin/bash
#说明:SSHD服务默认监听端口是22,如果你不强制说明别的端口,”Port 22”注不注释都是开放22访问端口portset=$1
if [ ! -z "$portset" ];theninputportlen=`echo "$portset"|sed 's/[0-9]//g'`#$portlen为空,说明输入的是一个整数if [ "$inputportlen" == "" ] && [ "$portset" -gt "1" ] && [ "$portset" -lt "65535" ];then #判断用户输入是否是1-65535之间个一个整数echo "--> 端口号输入正确"backup_sshd_config (){#获取当前日期和时间dateAndTime=`date +"%Y%m%d%H%M%S"`echo "--> 开始备份/etc/ssh/sshd_config文件"/bin/cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$dateAndTime && echo "--> /etc/ssh/sshd_config文件备份成功" || { echo "--> /etc/ssh/sshd_config文件备份失败"; ExitCode=1; }bakfile=`/bin/ls /etc/ssh | grep $dateAndTime`echo "--> /etc/ssh/sshd_config文件备份结束,文件名为:$bakfile"}sshd_service_restart (){systemver=`cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/'`if [[ $systemver = "6" ]];thenservice sshd restart && echo "--> sshd服务重启完成" || { echo "--> sshd服务重启失败"; ExitCode=1; }else systemctl restart sshd.service  && echo "--> sshd服务重启完成" || { echo "--> sshd服务重启失败"; ExitCode=1; }fi}#获取sshd运行进程IDgetSSHProcessID=`ps -ef | grep sshd | awk '{if($3=="1" && $8=="/usr/sbin/sshd")print $2}'`if [ "$getSSHProcessID" != "" ];then #$getSSHProcessID不为空说明sshd服务启动正常#获取sshd打开的端口列表getSSHOpenPortList=`netstat -anop | grep $getSSHProcessID | grep ^tcp | grep LISTEN | grep -v ::: | grep sshd | awk '{print $4}' | awk -F ":" '{print $2}' | uniq | xargs echo`#计算sshd打开的端口数量getSSHOpenPortCount=`netstat -anop | grep $getSSHProcessID | grep -v ::: | grep sshd | grep LISTEN | awk '{print $4}' | awk -F ":" '{print $2}' | uniq | wc -l`if [ "$getSSHOpenPortCount" == "1" ] && [ "$getSSHOpenPortList" == "$portset" ];then #如果当前只打开了一个端口,且与希望设置的端口相同,无需做任何配置echo "sshd服务运行端口为$portset,无需修改!!!"exit 0elif [ "$getSSHOpenPortCount" == "1" ] && [ "$getSSHOpenPortList" == "22" ];then #如果端口为22说明使用的是默认的#Port 22设置,则增加Port设置listenportlent=`netstat -ano | grep -w LISTEN | grep -w $portset`if [ "$listenportlent" == "" ];then #判断端口是否被占用#备份配置文件backup_sshd_configecho "Port $portset" >> /etc/ssh/sshd_config  && echo "--> 修改sshd运行端口为$runport成功" || { echo "--> 修改sshd运行端口为$runport失败"; ExitCode=1; }#重启sshd服务sshd_service_restartelseecho "端口已经被占用,请重新输入"exit 1fi     else #当打开了一个或多个非22,且与设置的端口不同时listenportlent=`netstat -ano | grep -w LISTEN | grep -w $portset`if [ "$listenportlent" == "" ];then #判断端口是否被占用#备份sshd配置文件backup_sshd_configfor sshport in $getSSHOpenPortListdo/bin/sed -i "s/$sshport/$portset/g" /etc/ssh/sshd_configdone#重启sshd服务sshd_service_restartelseecho "端口已经被占用,请重新输入"exit 1fifielseecho "--> sshd服务未启动"exit 1#尝试重启sshd服务sshd_service_restartfielseecho "--> 请输入1-65535之间的一个整数"exit 1fi
elseecho "--> 请输入端口号"exit 1
fi

将代码保存到test.sh,赋权,即可执行

【shell脚本】修改ssh端口相关推荐

  1. git ssh配置文件 服务器_Linux 环境 搭建Git 服务器,并且修改SSH端口使用

    1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...

  2. linux git服务器搭建端口号是多少,Linux 环境 搭建Git 服务器,并且修改SSH端口使用...

    1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...

  3. Linux 环境 搭建Git 服务器,并且修改SSH端口使用

    1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...

  4. Centos7 修改SSH 端口

    修改ssh端口的详细步骤(centos7): step1 修改/etc/ssh/sshd_config vi /etc/ssh/sshd_config Port 22         //这行去掉#号 ...

  5. linux修改ssh端口和禁止root远程登陆设置

    linux修改ssh端口22 vi /etc/ssh/ssh_config vi /etc/ssh/sshd_config 然后修改为port 8888 以root身份service sshd res ...

  6. 【SSH】禁用root远程、修改ssh端口

    文章目录 禁用Root 远程登陆 Linux修改ssh端口22 禁用Root 远程登陆 创建普通权限的用户 [root@singledb ~]# useradd ruser[root@singledb ...

  7. Linux 修改SSH端口 和 禁止Root远程登陆

    SSH 端口默认是22. 但从安全方面考虑,建议修改这个端口. 端口的取值范围是 0 - 65535(即2的16次方),0到1024是系统使用的端口,如 http服务的端口80.我们可以使用的端口范围 ...

  8. redhat 添加ssh端口_Centos以及Redhat修改ssh端口

    Centos以及Redhat修改ssh远程端口的时候,需要先关闭selinux,在修改端口号才可以,操作顺序如下: 1.关闭selinux: 1.1.执行setenforce 0,临时关闭selinu ...

  9. ubuntu修改ssh端口_在Ubuntu上更改SSH欢迎横幅

    ubuntu修改ssh端口 Every time I connect to my Ubuntu development server through my ssh client, I receive ...

  10. Centos7 修改SSH端口,以及修改密码

    前两天公司Linux主机被qW3xT.3 挖矿病毒攻击了~~,然后就对Centos7各种设置. 1.开启防火墙, (以前都是出于关闭状态); 2.修改默认的SSH 22 端口: 3.修改密码. 修改S ...

最新文章

  1. mysql索引空间太大_MySQL优化索引
  2. python中的协程(二)
  3. android 以不规则图片为边框切割另外图片
  4. mysql 的默认数据库mysql为什么在 workbench下看不到?
  5. 基于flink+clickhouse构建亿级电商全端用户画像平台训练营
  6. Redis简介及入门
  7. 计算机综合应用实验,计算机综合应用实验二WORD应用.doc
  8. 创建选修专业表oracle,数据库及数据表的创建与删除 (Oracle实验)
  9. rcs开机启动mysql_linux添加开机自启动脚本示例详解-阿里云开发者社区
  10. 耗尽linux内存脚本,Linux下swap耗尽该怎么办?如何释放swap?
  11. 《编程之美》1.3一摞烙饼的排序
  12. 云存储安全,主要面临哪些问题
  13. Manjaro安装以及美化教程
  14. vue项目之微信分享
  15. Hbase、elasticsearch整合中jar包冲突
  16. bugly android升级,Bugly升级SDK适配Android N
  17. 5G究竟如何改变我们的生活?三大特性和八大应用场景
  18. 155:vue+openlayers 设置地图的反转色、复古色、灰度图、原始图
  19. 微信小程序云开发数据导出为Excel下载并打开
  20. VScode终端配置bash.git(默认),terminal.integrated.shell:windows路径查找不到前提下

热门文章

  1. C#的Enumerator(枚举数) 和 Enumerable(可枚举类型)
  2. 持续学习第118天(扶摇生财思维)
  3. 收集到的手机应用商城的地址
  4. 用数据结构中的快速排序中Partion函数(交换法)的思想解题
  5. vue3双向数据绑定原理
  6. css-loader
  7. 迈百瑞冲刺创业板上市:关联收入占比较高,房健民为加拿大籍
  8. 家用计算机桌,2017家用电脑桌款式图片大全
  9. 关于动态换肤的解决方案
  10. 常见的服务器响应状态码