文章目录

  • Securing OpenSSH
    • 6. 在防火墙处过滤 SSH
    • 7. 使用公有/私有密钥进行身份认证
  • 参考

Securing OpenSSH

上文:CentOS 7 - Securing OpenSSH(一)

6. 在防火墙处过滤 SSH

如果您只需要从一个 IP 地址进行远程访问(比如从工作地址到您的家庭服务器),那么考虑在您的路由器中添加防火墙规则来过滤防火墙上的连接,将访问限制为仅该特定的 IP 地址。

在防火墙服务中使用 rich-rules 来允许 SSH 只在特定的端口上。源地址可以是单个地址,也可以是带位掩码的基址:

# use 'ssh' or 'ssh-custom' depending on which are enabled and available
$ firewall-cmd --permanent --remove-service="ssh"
$ firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="72.232.194.162" service name="ssh-custom" accept'
$ firewall-cmd --reload

SSH also natively supports TCP wrappers and access to the ssh service may be similarly controlled using hosts.allow and hosts.deny.

如果您不能限制源 IP 地址,并且必须全局打开 SSH 端口,那么可以限制其尝试连接的次数:

# use 'ssh' or 'ssh-custom' depending on which are enabled and available
$ firewall-cmd --permanent --remove-service="ssh"
$ firewall-cmd --permanent --add-rich-rule='rule service name="ssh-custom" accept limit value="4/m" log'
$ firewall-cmd --reload

第一个命令删除了更宽松的服务规则,第二个命令设置了一条规则,每分钟只接受 4 个连接,并记录所有连接。

7. 使用公有/私有密钥进行身份认证

使用密钥进行认证有两个主要好处。第一,如果你使用公/私密钥对进行认证,你无需输入密码(除非你使用密码加密密钥对)。第二,一旦在服务器上建立公/私密钥对认证,你可以完全地禁用 SSH 服务的密码认证,这意味着没有已授权的私钥,你将无法获得访问权限 – 因此,就没有密码破解攻击。

创建公/私密钥对并将其安装在使用 SSH 服务的服务器上的步骤是相当简单的。

首先,在你的客户端上创建一个公/私密钥对:

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:pT1KVqS9SdC9MUkCcR1JfRGDS8NhO8dj2G3uR3mbhU0 root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|        +++==Bo+o|
|         *..O=* +|
|        . = .BoBE|
|         * o..+*o|
|        S =   ..*|
|       o . .   o=|
|        .      oo|
|                .|
|                 |
+----[SHA256]-----+
  • 第 2 行:输入一个文件名,用于保存私钥。如果直接按回车键,则使用默认路径;
  • 第 4 行:输入密码,用于加密私钥。如果不提供密码直接按回车键,则每一个使用你的账户的人都可以访问该私有密钥,这是极其危险的;
  • 第 5 行:确认上一步骤的密码。

以上操作将在 ~/.ssh 目录中创建两个文件:id_rsa(私钥)和 id_rsa.pub(公钥)。

接着,设置 ~/.ssh 目录及私钥的权限:

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa

然后,使用 scp [[user@]host1:]file1 ... [[user@]host2:]file2 命令将公钥复制到服务器上,并将其安装到 authorized_keys 列表:

$ cat id_rsa.pub >> ~/.ssh/authorized_keys

注意:一旦你成功导入公钥,就可以将其删除。

and finally set file permissions on the server:

最后,设置 ~/.ssh 目录及 authorized_keys 列表的权限:

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

如果 /etc/ssh/sshd_config 文件中的 StrictModes 值为 yes(默认),则以上权限是必须的。

确保正确的 SELinux 环境被设置:

$ restorecon -Rv ~/.ssh

现在,当你登录服务器时,你将不会被提示输入密码(除非你在创建密钥对时输入了密码)。默认情况下,SSH 将首先尝试使用密钥对进行认证。如果没有找到密钥或者认证失败,那么 SSH 将尝试使用密码认证。

一旦你确认使用公/私密钥对能够成功地登录到服务器,你就可以完全地禁用密码认证,只需在 /etc/ssh/sshd_config 文件中添加:

# Disable password authentication forcing use of keys
PasswordAuthentication no

参考

Securing OpenSSH

CentOS 7 - 在两台主机之间复制文件(scp (security copy))

CentOS 7 - Securing OpenSSH(二)相关推荐

  1. CentOS工作内容(二)关闭SELinux

    CentOS工作内容(二)关闭SELinux CentOS安装完成后,有很多配置要改,不过最重要就是关闭SELinux SELinux是增强安全性的一项功能,不是SELinux不好,而是当功能安全性较 ...

  2. Linux学习之centOs的安装(二)

    Linux学习之centOs的安装(二) 一般步骤笔记本上已经标注,另外详细解说:NETWORK和HOSTNAME部分 1.配置本身固定ip地址: 双击NETWORK & HOSTNAME,打 ...

  3. [官版翻译]OpenStack centos版安装(二)

    2019独角兽企业重金招聘Python工程师标准>>> 原创作品:http://manual.blog.51cto.com/3300438/967858 在OpenStack第一天文 ...

  4. centos常用命令_二、Docker镜像是什么?Docker常用命令

       科技奇闻    关注让你我共同进步 文章来源:CSDN 作者:IronmanJay Docker常用命令 1.帮助命令 docker version #查看版本号docker info #显示D ...

  5. centos 管理记录(二)

    2019独角兽企业重金招聘Python工程师标准>>> 以下操作均为root账户 更新yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo h ...

  6. centos 6.7 openssh 升级到openssh 7.1p

    openssh 升级主要解决: OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的连接工具.该工具是SSH协议的开源实现,支持对所有的 ...

  7. CentOS下升级openssh版本

    前言 CentOS 6.x 和 7.x 的断裂带来很多麻烦,习惯SysV下面的init.d脚本后,转systemd很不适应,之前还花了点时间学systemd,但是可能是年龄大了,老是记不住命令,以后还 ...

  8. CentOS 初体验十二:wget下载文件

    转载请注明出处http://blog.csdn.net/zhaoyanjun6/article/details/79108129 本文出自[赵彦军的博客] wget命令 wget命令用来从指定的URL ...

  9. linux怎么卸载fastdfs,FastDFS5.10卸载,centos卸载FastDFS(二)

    由于FastDFS软件并未提供直接的一键卸载,所以卸载有点麻烦,FastDFS卸载步骤如下: 注意:所有删除操作请务必先查看是否存在文件文件是否为FastDFS相关 1) 停止服务 [root@bog ...

  10. CentOS minimal笔记(二):安装Qualcomm Atheros AR8161 Gigabit Ethernet网卡驱动

    上一篇是在visual box上装的,然后我在我的笔记本上也装了,悲剧又开始了. 和在虚拟机上装不同,虚拟机上虚拟的网卡驱动已经装好了,而我的电脑就需要自己找驱动了. 首先进系统我就去找ifcfg-e ...

最新文章

  1. erlang 二进制
  2. Django的学习需要掌握的一些基础和初步搭建自己的框架
  3. IDEA同时使用maven和gradle
  4. 多所高校通知:暂缓返校
  5. linux:根据关键字或日期查找日志
  6. python画轮廓_python 分割 画图像的轮廓 - 程序园
  7. 超252万市民预约报名 北京数字人民币红包中签结果公布啦
  8. 如何解决大量的if语句或switch case语句?
  9. 你可能需要为你的 APP 适配 iOS 11
  10. Android开机启动Activity或者Service方法
  11. VC2010 编译 Media Player Classic - Home Cinema (mpc-hc)
  12. 常用的python内置方法
  13. paip.提升性能----java 无锁结构(CAS, Atomic, Threadlocal, volatile, 函数式编码, 不变对象)
  14. freeswitch+kamailio+unimrcp
  15. c语言程序设计读书心得,高质量的c语言编程读后感
  16. 【设计模式】职责链模式,MySQL+Tomcat+JVM,看完还怕面试官
  17. VINS-Mono学习(四)——回环检测与重定位
  18. python json库安装_python-安装simplejson后没有名为“ json”的模块
  19. oppor9桌面布局设置_oppor9添加桌面图标
  20. win10系统输入法图标不见了怎么找回

热门文章

  1. html网站右侧广告位,分享一个html+css对联广告位的代码,网站通用
  2. 开源一款资源分享与下载工具 —— 电驴(eMule)
  3. arduino并口屏_74HC595等串口转并口芯片的Arduino实用封装
  4. 强化学习(十一) Prioritized Replay DQN
  5. u盘芯片 测试软件,U盘芯片检测工具(Chip Genius)
  6. 「第六篇」0day漏洞
  7. PreparedStatement 不定参数处理
  8. Linux开发板烧录实验
  9. Linux开发板无法连接ssh
  10. windows聚焦 电脑锁屏不显示图片问题