如果你使用过Linux操作系统的VPS或其他服务器,可能在登录时经常会提示你有多少次登录失败的记录。

这种登录失败的记录实际上也就是攻击者使用脚本自动扫描全网的IP然后进行筛选和测试,最终脚本会使用内置的密码组尝试登录开放22端口的Linux服务器。

当然如果登录成功那么意味着你的服务器就是被黑了,除了搜寻服务器中有价值的内容外就是充当肉鸡了。

为此我们可以关闭掉22端口使用密钥来进行登录,这样子可以瞬间把服务器的安全性提高好几个档次呢。

以下是基本的操作流程:

1、登录Linux服务器来生成公钥和私钥:

[root@landian ~]# ssh-keygen                             <== 生成密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <== 密钥对默认路径,直接Enter即可
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:
2b:::b6::2f::ee:f3::5e::::d9:6e root@landian
The key's randomart image is:
+--[ RSA ]----+

2、进入刚刚生成密钥对的默认路径,然后将生成的公钥安装到操作系统上:

[root@landian ~]# cd /root/.ssh                         <== 进入密钥对所在目录
[root@landian .ssh]# cat id_rsa.pub >> authorized_keys <== 安装公钥文件至系统

3、键入以下命令对公钥和目录设置权限:

[root@landian .ssh]# chmod  authorized_keys          <== 设置600权限
[root@landian .ssh]# chmod ~/.ssh <== 将目录设置700权限

4、通过FTP工具将SSH配置文件(/etc/ssh/sshd_config)下载本地编辑(也可直接用vim进行编辑):

请将以下三项内容前的#号删除(#号为注释符、即不生效),如果对应项后面默认的是No则改成Yes

注意:如果你本身并不是使用Root账户登录的那么不要修改PermitRootLogin选项包括前面的#号。

5、修改完成后将sshd_config再上传并覆盖掉服务器上原有的文件,覆盖成功后重启SSH服务:

[root@landian .ssh]# service sshd restart       <== 重启SSH服务
Redirecting to /bin/systemctl restart sshd.service

6、将私钥/root/.ssh/id_rsa下载到本地进行测试,以XShell为例在管理中把验证方法改成Key:

依次点击用户密钥后的浏览、导入并选择刚刚下载的id_rsa文件,选中后点击确定即可(密码即密钥密码)

更改后SFTP连接也同样需要使用密钥进行登录,以FileZilla为例:

点击文件—管理—选择站点—常规—登录类型—密钥文件—浏览—然后选择私钥文件,FileZilla会提示你转成Putty的PPK格式你按提示操作即可。

7、在SSH和SFTP测试都可以使用密钥登录后我们再次编辑SSH配置文件(就刚刚下载的sshd_config):

PasswordAuthentication前面的#删除并将后面的Yes改成No即可禁止使用密码来登录SSH和SFTP。

修改后把文件保存好再次上传至服务器然后重启SSH服务器就大功告成啦!注意不要丢失私钥和密码哦。

[root@landian .ssh]# service sshd restart      <== 再次重启SSH服务
Redirecting to /bin/systemctl restart sshd.service
[root@landian .ssh]#

Linux操作系统设置SSH及SFTP通过密钥登录的更多相关文章

  1. 为Linux操作系统配置SSH互信

    Linux 互信,免登陆 1.切换到要建立互信的用户(以root为例): su - root cd ~ 2.制作密钥并赋权: # ssh-keygen -t dsa               #出现 ...

  2. 如何在Linux上设置SSH密码以进行无密码登录(转)

    ssh(secure shell)广泛用于远程登录Linux服务器.当我们使用ssh登录到远程系统时,它会提示输入密码,然后只允许我们登录到服务器.有时我们需要配置应用程序或脚本(主要是shell脚本 ...

  3. [CentOS7][ssh][publickey][troubleshoot] 通过密钥登录ssh故障排查

    通常情况下,我会使用非对称加密的方式来进行ssh的登录. 做法: 将公钥添加到 $HOME/.ssh/authorized_keys 文件中. 但是通常,会遇见各种各样的问题,导致失败.汇总如下: 0 ...

  4. linux中,ssh实现免密自动登录到远程主机,ssh信任的实现

    需求描述: 平时使用ssh的时候,一般使用ssh都是通过用户名和密码登录到远程主机上, 然后执行一些命令,远程登录过程中,需要手动的输入密码(提示输入密码之后), 但是,在实际的应用过程中,涉及到让脚 ...

  5. Linux服务器在SSH客户端如何实现免密登录

    一.SSH客户端Setting 配置 key ,  创建生成公钥导出文件. 二.服务器 master 上生成密钥 通过执行命令 ssh-keygen -t rsa 来生成我们需要的密钥. ssh-ke ...

  6. Winscp使用密钥登录

    Winscp使用密钥登录 背景:通常我们使用winscp通过密码认证去连接服务器进行文件的ftp操作,但是为了安全,我们服务器上经常会禁止使用密码连接,而改用密钥认证.而且服务器上经常会禁止root用 ...

  7. Linux系统设置 SSH 通过密钥登录

    我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器.但是,一般的密码方式登录,容易有密码被暴力破解的问题.所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者 ...

  8. SSH远程免密码的密钥登录服务(Linux,Linux)

    本次实验基于两台Linux虚拟机之间的实验,一台做服务器,一台做客户机,模拟免密码的密钥登录. 首先两台虚拟机需要可以ping通,用客户机访问服务器. sshd服务主配置文件路径: /etc/ssh/ ...

  9. linux系统ssh免密钥登录配置

    linux主机配置ssh免密钥登录,具体配置如下: 1.执行命令ssh-keygen -t rsa,生成公钥和私钥(具体步骤详见下图) 2.会在当前用户的家目录的.ssh/生成公钥和私钥, 3.执行s ...

随机推荐

  1. java中使用Ehcache缓存数据

    知识点:在java项目中,使用ehcache缓存数据 参考博客:http://www.cnblogs.com/jingmoxukong/p/5975994.html ()概述 Ehcache是一个纯J ...

  2. Caffe cpu版本 Linux配置命令及搭建

    Caffee 安装过程 1.安装依赖包 $ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-de ...

  3. 解题报告:hdu1248寒冰王座 - 完全背包模板

    2017-09-03 16:16:38 writer:pprp 完全背包问题:从左向右进行扫描,用一维阵列进行分析 代码如下: /* @theme:hdu1248 寒冰王座 @writer:pprp ...

  4. 在 Linux 服务器上搭建和配置 Hadoop 集群

    实验条件:3台centos服务器,jdk版本1.8.0,Hadoop 版本2.8.0 注:hadoop安装和搭建过程中都是在用户lb的home目录下,master的主机名为host98,slave的主 ...

  5. Codeforces Round #365 (Div. 2) D - Mishka and Interesting sum(离线树状数组)

    http://codeforces.com/contest/703/problem/D 题意: 给出一行数,有m次查询,每次查询输出区间内出现次数为偶数次的数字的异或和. 思路: 这儿利用一下异或和的 ...

  6. Outlook.com 系列邮箱 POP3 及 IMAP 设置方法

    支持 Exchange ActiveSync 的应用 有了 EAS,你可以立即获取电子邮件,以及在一个位置查看所有文件夹.日历和联系人. 如果你的电子邮件应用支持Exchange ActiveSync ...

  7. 使用location.hash保存页面状态

    hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分). 语法 location.hash 在我们的项目中,有大量ajax查询表单+结果列表的页面,由于查询结果是a ...

  8. 【性能测试】服务器性能监控、数据采集工具nmon安装使用详解

    nmon nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过nmon_analyzer工具产生 ...

  9. PHP5.6版本安装redis扩展

    一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本       2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2 ...

  10. SQL Server 的索引结构实例

    目前SQL Server 的索引结构如下: 这个是聚集索引的存放形式: 非聚集索引的方式如下: 它们是以B+树的数据结构存放的. 相信大家都看过类似的图,但是没有直观的认识,下面举一个实际的例子来说明 ...