一.更换端口, 可以在一定程度上防止扫描攻击

  vim /etc/ssh/sshd_config

  将 port 一项从 22 更改为高位端口, 然后重启 ssh 服务

  systemctl restart sshd.service

二.禁止使用root账号登录, 允许使用root账号登录服务器是一个极其危险的行为!

  vim /etc/ssh/sshd_config

  MaxAuthTries 3    # 限制失败次数

    PermitRootLogin no # 禁止使用root账号登录

  重启 ssh 服务

三.关闭密码登录, 防止暴力攻击, 使用 非对称密钥对进行身份认证

  vim /etc/ssh/sshd_config

  RSAAuthentication  yes  # 开启RSA验证

  PubkeyAuthentication   yes  # 是否使用公钥验证

  AuthorizedKeysFile  .ssh/authorized_keys  # 保存公钥的文件的位置, 这里就是登录用户的家目录下的 .ssh目录, 可以根据自己的实际情况进行配置

  PasswordAuthentication  no  #禁止使用密码验证登陆

四.生成公钥私钥, 将公钥上传到服务器   

  1、确认服务器都已都已安装了ssh服务

  2、在本机上创建密钥对
    ssh-keygen
-
t rsa

    1).注意查看提示,如果出现提示系统已经生成了ssh-key,则不必生成

    2).如果需要重新生成ssh-key,所有的提示按enter键即可,也可以根据自己的需要输入自己的选项

    3).注意提示保存ssh-key的存放目

    4).完成以后进入到保存ssh-key的目录,
就可以看到id_rsa和id_rsa.pub文件

  3、把公钥的内容追加拷贝到服务器上登录用户的家目录下的.ssh目录下的authorized_keys
文件(具体将公钥追加拷贝到那个文件,
根据ssh的配置文件的实际配置而定)

  4、systemctl
restart sshd.service
 
#
重启ssh服务

再次使用ssh远程连接服务器, 发现已不需要输入密码进行验证

注意: 如果使用ssh进行远程登录时 使用了sudo 超级管理员权限, 那么私钥就是当前服务器的root用户的私钥, 所以,也就是说需要把当前服务器root用户的公钥上传到目标服务器,才可以使用 sudo 超级管理员权限, 否则仍然需要输入密码(如果开启了允许输入密码进行身份验证)

 

Linux SSH 连接安全设置的更多相关文章

  1. linux ssh连接超时断连设置

    以下均针对redhat6.5系统进行说明. 一.设置ssh超时断连 使用root用户,编辑/etc/profile文件,在 HOSTNAME='/bin/hostname' HISTIZE=30 后增 ...

  2. Linux - ssh 连接问题

    SSH 连接方式 ssh -p 22 user@192.168.1.209 # 从linux ssh登录另一台linux ssh -p 22 root@192.168.1.209 CMD # 利用ss ...

  3. linux ssh 连接设置

    ! 本文编辑中 centos ssh 无法连接

  4. VMware + LInux + Xshell 连接环境设置(心得体会)

    准备好VMware软件,和Linux 和xshell三款软件,下载和安装好,这里VMware是十二,Linux是CentOs 6 ,xshell是5 其实没有什么区别只要版本兼容就行,我们就可以实现远 ...

  5. 修改Linux SSH连接端口和禁用IP,安装DDoS deflate

    测试系统:centos7 修改连接端口 修改配置文件 vi /etc/ssh/sshd_config 去掉port 22的注释,添加新的端口配置 port your_port_num 自定义端口选择建 ...

  6. linux ssh连接不自动断开

    修改linux服务器ssh配置文件: vim /etc/ssh/ssh_config 修改两处的值为: ClientAliveInterval ClientAliveCountMax 使修改的ssh配 ...

  7. Linux ssh 密钥对登陆设置

    SSH通过密钥连接 ssh -i ~/miyao.pem root@server_ip 密钥权限要设置为仅root用户读写 chmod 600 ~/miyao.pem 密钥可添加到系统里,以后连接可除 ...

  8. linux自动连接校园网设置

    不知道有没有人用linux的时候碰到过校园网连接后,跳不出登录界面,即使手动输入也没有作用.写一个可能可行的方法: - 首先打开控制面板 选择网络代理 将代理中的选项设置为 估计现在就能自动弹出登录页 ...

  9. VMware + LInux + Xshell 连接环境设置

    一.安装好Centos后,打开设置: 网络连接四中模式桥接模式.NAT模式.仅主机和自定义模式: 1).桥接模式:更公司的局域网连接,等于另一台连接进公司的新电脑 2).NAT模式:与虚拟机使用的计算 ...

随机推荐

  1. RPC协议

    什么是 RPC? 初步印象 RPC的语义是远程过程调用,在一般的印象中,就是将一个服务调用封装在一个本地方法中,让调用者像使用本地方法一样调用服务.而具体的实现是通过调用方和服务方各自的stub基于T ...

  2. centos 安装mysql8.0.16

    清除自带的mariadb > rpm -qa|grep mariadb mariadb-libs-5.5.44-2.el7.centos.x86_64 > rpm -e --nodeps ...

  3. vue父子(父传子)传值

    vue2.0中,实现父子组件间的传值,需要依靠一个props的属性,作为变量接收的对象. 注:vue.js文件引用的是本地的js文件,拷贝本机运行时,可以使用cnd替换. https://www.bo ...

  4. 【leet-code】接雨水

    给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 ...

  5. Java注解及其原理以及分析spring注解解析源码

    注解的定义 注解是那些插入到源代码中,使用其他工具可以对其进行处理的标签. 注解不会改变程序的编译方式:Java编译器对于包含注解和不包含注解的代码会生成相同的虚拟机指令. 在Java中,注解是被当做 ...

  6. Redis Desktop Manager 0.9.3 版本下载

    因为Redis Desktop Manager作者在 0.9.4 版本之后选择对所有的安装包收费,不再提供安装包下载,但是源码依旧公开.链接:https://pan.baidu.com/s/1SXsy ...

  7. 【转】Mac入门(一)基本用法

    我前五年一直外包到微软,每天使用的都是Windows系统和.NET. 2012年加入VMware,  公司的工作机是台Mac 笔记本(MacBook Pro), 所以有机会接触Mac系统 Mac和Wi ...

  8. Java的常用API之Date类简介

    Data类 java.util.Date:表示日期和时间的类类Date 表示特定的瞬间,精确到毫秒.毫秒:千分之一秒 1000毫秒=1秒 把日期转换成毫秒: 当前的日期:2019-07-18 时间原点 ...

  9. Cglib 与 JDK动态代理

    作者:xiaolyuh 时间:2019/09/20 09:58 AOP 代理的两种实现: jdk是代理接口,私有方法必然不会存在在接口里,所以就不会被拦截到: cglib是子类,private的方法照 ...

  10. 100道MySQL常见面试题总结

    原文链接:https://juejin.im/post/5d351303f265da1bd30596f9 前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐 ...