先说结论:

保护云服务器的最佳步骤:使用密钥登陆,禁用密码登录。

  • 绑定密钥以及使用远程登录软件登录服务器的过程请务必先以官方文档及视频为主准!!!这一步对了可以少走很多弯路。不要一来就去找别人的教程,要知道,人家的也不保证是对的。(我这个也许也是错的哦,仅供参考,请务必自行判断)

    弯路及其原理:

    • 密钥处理原理:(以putty为例),打开puttygen.exe,这是个很有用的工具,功能之一是生成密钥,最倒数第二行就是可选择的加密方式,比如rsa。不要学某些教程去点那个generate,因为这是在帮助你新生成一个公钥和私钥啊,而我们的目标只是把自己的私钥load上去,并将其以putty程序能读取的文件格式保存,所以load之后点击save privary key的按钮,并且记住这个文件的保存路径。

    • 远程登录原理:打开putty.exe,进入SSH的Auth,在最下方的框框导入刚刚保存的文件。之后再进入Session,输入ip地址和端口号,点击open。你在Auth中放入的密钥文件会被与远程主机(服务器)上的密钥文件进行比对,正确即成功。

    • 还出现了报错?

      因为让我最终解决问题的是静下心来看英文说明、不点generate,但是我之前也尝试了很多其他操作。我不确定那些操作是否也对我目标达成产生了影响,正如吃到第五个包子就饱了,但我总不能说那就只吃第五个包子就够了。

      如果你还没有解决问题,我建议你从以下几个方面进行排查:

      • 服务器文件权限。

        cd ~
        chmod 700 ~/.ssh
        cd ~/.ssh
        chmod 600 authorized_keys
        

        试试如以上方法设置权限。

        这里标注一下。

        权限对象分为三类,u(user) ;g(group);o(other)

        权限分为三种:r(read);w(write);x(执行)

        权限设定有两种表示方法:

        • 对象+/-/=权限内容,(其中+为增加,-为去除,=为唯一指定)
        • 数字表示。从左到右的数字分别代表u,g,o。而r=4,w=2,x=1。如700表示:赋予user读+写+可执行权限,group和other无权限。
      • 认证通道没开放

        用vim打开

        /etc/ssh/sshd_config
        

        文件,确认里面的

        RSAAuthentication
        PubkeyAuthentication
        

        为yes,如果没有就自行添加。反正你刚刚开放了相关文件权限,在linux中万物皆文件。

      • 如果还是不行,建议打开

        authorized_keys
        

        这个文件看看密钥的格式是否有错误。正确的格式是以

        ssh-rsa
        

        为开头;

        ==rsa-key
        

        为结尾。

      • 最后温馨提醒:不要开放

        sshd_config
        

        里的AllowpasswordAuthentication(大概是这名,我忘了),设密钥不就是觉得弱密码容易被人暴力破解吗?开放了这个虽然能让你解决掉远程连接的问题,但是你能登上,人家也能登上,这样只是治标不治本。

  • 如果你还是想选择密码登录,又不想不间断地被陌生ip尝试暴力破解密码,以下方式可供参考。

    • 手动将每次发现的ip地址加入禁止连接的黑名单:

      vim /etc/hosts.deny
      sshd:xxx.xxx.xx.xxx:deny
      
    • 用脚本(郑重说明:这个脚本我在网上找的,我个人建议脚本之类的全文看懂再用,毕竟如果自己的程序或系统出了问题,明白之前执行过什么操作,排查起来也方便)

#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
for i in `cat  /usr/local/bin/black.txt`
doIP=`echo $i |awk -F= '{print $1}'`NUM=`echo $i|awk -F= '{print $2}'`if [ $NUM -gt 5 ];thengrep $IP /etc/hosts.deny > /dev/nullif [ $? -gt 0 ];thenecho "sshd:$IP:deny" >> /etc/hosts.denyfifi
done

并使用crontab 设定每五分钟执行一次。

# crontab -e
*/5 * * * *  sh /usr/local/bin/secure_ssh.sh

注:语法说明:(参见菜鸟教程)

crontab [ -u user ] { -l | -r | -e }其中-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12)
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
  • 选择密码登录下的:修改默认端口号:(个人不太建议)

    (不太建议的原因:22是linux远程登录的默认端口号,虽然网上有人说把它改成个不太常用的,被人扫描常用端口号然后尝试暴力破解服务器的概率会降低,但我觉得还是提高自身设备的防护能力更重要。)

    如果一定要改端口号,建议严格按照官方文档的步骤来。

    • 例如,先增加一个端口号,放行22和新端口号,等确认新端口号能登陆了再注释掉22;不要过度自信,否则可能连自己都登不上去。(如果到了连网页端登录入口都连接不了的情况,我个人建议重装系统,在服务器上重装系统很简单)

    • 修改相关文件时,要在网页控制台端对安全组和防火墙进行同步操作后,之后在重启服务。

    • 最后附上一些关于端口的介绍。

      端口号的范围是从1~65535分为3大类:1) 公认端口(Well Known Ports):从0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。2) 注册端口(Registered Ports):从1024到49151,它们松散地绑定于一些服务。但是这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。3) 动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
      

【linux】云服务器的密钥登陆与密码登录相关注意事项相关推荐

  1. 谷歌云服务器如何使用xshell 用户名密码登录

    谷歌云服务器默认是不能使用用户名密码登录的,如果需要使用用户名密码登录,我们首先需要先在谷歌云管理控制台为root用户创建密码,修改配置文件操作,操作流程如下 登录进服务器后,切换root用户 sud ...

  2. ecs云服务器 系统登陆密码,云服务器ecs怎么登陆密码

    云服务器ecs怎么登陆密码 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 本节 ...

  3. Mac 登陆Linux云服务器方法

    Mac 登陆Linux云服务器方法 terminal终端输入ssh有响应参数,则说明ssh是装在mac上 ssh <username>@<ip>其中username为用户名 i ...

  4. 优化华为云服务器采用Key登陆

    优化华为云服务器采用Key登陆 测试阶段,测试通过,整改服务器登陆问题,统一优化服务器采用KEY登陆,优化22号端口 购买华为云 我这边是测试就购买的按需付费,测试完成就释放掉拉 购买一个弹性公网ip ...

  5. 金蝶登录显示服务器离线,金蝶云服务器已离线 登陆不了

    金蝶云服务器已离线 登陆不了 内容精选 换一换 创建备份策略后,通过向备份策略中绑定服务器给备份策略关联服务器.已创建至少1个备份策略.至少存在一个状态为"运行中"或"关 ...

  6. 云服务器BBC销售渠道,云服务器bbc怎么登陆

    云服务器bbc怎么登陆 内容精选 换一换 数据盘可以在购买云服务器的时候购买,由系统自动挂载给云服务器.也可以在购买了云服务器之后,单独购买云硬盘并挂载给云服务器.对于Windows云服务器而言:如果 ...

  7. linux云服务器怎么选配?如何配置linux云服务器

    Linux是自由的免费开源的,它是以unix为原型改造的,一个多用户多任务的操作系统,任何人都可以修改其代码和页面,其中主要的目的就是为了不收商业化的限制,而我们将服务器部署在linux系统上会更加高 ...

  8. 拉取ftp服务器上的文件_winscp和云服务器,2步实现winscp将文件上传到腾讯云Linux云服务器...

    WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议,它的主要功能就是在本地与远程计算机间安全的复制文件.与使用FTP上传代码相比,通过WinSCP可以直接使 ...

  9. 服务器如何关闭登录日志文件,linux云服务器登录日志文件

    linux云服务器登录日志文件 内容精选 换一换 Cloud-Init工具安装完成后,请参考本节操作配置Cloud-Init工具.已安装Cloud-Init工具.已为云服务器绑定弹性公网IP.已登录云 ...

最新文章

  1. 父窗口控制弹出窗口快捷键ctrl+c关闭
  2. java软件下载jar_qdox.jar免费版
  3. 职称计算机初级应知应会书,2017专业技术职称申报应知应会.ppt
  4. ASP.NET Core Web 支付功能接入 微信-扫码支付篇
  5. Java动态性(3) - 脚本引擎执行javascript代码
  6. kali 开启ssh服务
  7. openfire 加 spark组建局域网聊天室
  8. C语言equivalent用法,C语言相当于'setw'函数
  9. 知网HTML阅读是什么,HTML – 屏幕阅读器究竟是什么?我应该如何处理我的网站?...
  10. 隐含表(状态对图)消消乐
  11. 软件安装(二)---PDF打印机安装设置
  12. 渗透测试-Python安全工具编程基础
  13. 含并行连结的网络(GoogLeNet)
  14. android_day01
  15. 如何让IIS支持php网页
  16. Macbook百度网盘不限速下载
  17. 根本解决Python2中unicode编码问题
  18. 详解三大编译器:gcc、llvm 和 clang
  19. 关于ASTER L1T产品介绍及预处理流程
  20. 算法实例_线性表 By:比方

热门文章

  1. 3D可视化工具Mayavi的安装
  2. 官网快速下载VScode
  3. Infiniband
  4. 一天一个 Linux 命令(28):fsck 命令
  5. 关于暗通道代码的一些注释(不完善,待更新)
  6. 事务一致性性与原子特性理解
  7. 天气预报API(三):免费接口测试(“旧编码”)
  8. cuckoo沙箱的搭建
  9. Bluetooth Profile Specification之2.0 SPP配置文件
  10. 【甄选资讯】日本设计行业优秀的设计网站