Linux操作系统设置SSH及SFTP通过密钥登录

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

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

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

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

以下是基本的操作流程:

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

[[email protected] ~]# 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:28:25:b6:62:2f:34:ee:f3:3:5e:76:68:37:d9:6e [email protected]
The key‘s randomart image is:
+--[ RSA 2048]----+

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

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

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

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

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

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

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

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

[[email protected] .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服务器就大功告成啦!注意不要丢失私钥和密码哦。

[[email protected] .ssh]# service sshd restart      <== 再次重启SSH服务
Redirecting to /bin/systemctl restart  sshd.service
[[email protected] .ssh]# 
时间: 2024-10-07 08:39:29

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

linux下启动ssh服务以便使用putty登录

通常在linux开发的过程中我们需要使用远程登录的工具,进行主机远程的登录,那么在使用像putty或者secureCRT这样的远程登录工具的时候,有时候会出现登录不上去的情况,那么此时我们首先应该想到的就是,我们主机上面的ssh服务是否已经开启,那么下面就结合网上的资料总结如下: 开启ssh服务 1.查看是否有sshd_config cat /etc/ssh/sshd_config  //查看是否有sshd_config文件 2.如果没有进行安装 sudo apt-get install ope

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

通常情况下,我会使用非对称加密的方式来进行ssh的登录. 做法: 将公钥添加到 $HOME/.ssh/authorized_keys 文件中. 但是通常,会遇见各种各样的问题,导致失败.汇总如下: 0. 常用的排除手段,一般就是,双端开debug,clinet开启的方式如下,server还从来没与与遇见过需要开的情况,一般开client端就都搞定了. /home/tong [[email protected]] [10:05] > ssh -vvvvv [email protected] Ope

华为公有云linux服务器上ssh登录的安全加固

linux服务器主要是通过ssh进行登录,但是在华为公有云上,如何保证登录安全性呢?本次以centos7为例,对ssh登录进行安全加固 修改默认端口 在linux上,修改ssh登录的默认端口,比如修改到5000 vim /etc/ssh/sshd_config 在第17行,将注释#删掉,修改为port 5000' 增加iptables开放端口5000 配置iptables #iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport

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

一.SSH客户端Setting 配置 key ,  创建生成公钥导出文件. 二.服务器 master 上生成密钥 通过执行命令 ssh-keygen -t rsa 来生成我们需要的密钥. ssh-keygen -t rsa 执行上面的命令时,我们直接按三次回车,之后会在用户的根目录下生成一个 3个 的文件夹. cd .ssh查看改目录. authorized_keys id_rsa id_rsa.pub known_hosts cd .ssh 三.远程密钥登录 这里介绍最常用的三种方式,一是通过

Linux使用密钥登录SSH

Operating system: CentOS 6.5 64bitSSH clients : Putty/Puttygen 1)安装SSH服务 #yum install -y openssh-server    //安装ssh服务 #/etc/init.d/sshd start    //启动ssh服务 #netstat -anpt | grep sshd    //查看是否成功启动 2)在服务器上生成密钥 #ssh-keygen -b 1024 -t rsa 在Linux上使用ssh-key

Linux SSH和SFTP服务分离

Linux SSH和SFTP服务分离 学习了:https://www.cnblogs.com/zihanxing/articles/5665383.html 都是监听22端口: 原文地址:https://www.cnblogs.com/stono/p/9086630.html

Linux安全之SSH 密钥创建及密钥登录,禁止密码登陆

//参考原文链接 他们有图哦https://blog.csdn.net/nahancy/article/details/79059135 http://www.runoob.com/w3cnote/set-ssh-login-key.html 首先进入Linux系统的用户目录下的.ssh目录下,root用户是/root/.ssh,普通用户是/home/您的用户名/.ssh,我们以root用户为例: cd /root/.ssh 执行ssh-keygen命令创建密钥对, ssh-keygen -t

linux系统ssh免密钥登录配置

linux主机配置ssh免密钥登录,具体配置如下: 1.执行命令ssh-keygen -t rsa,生成公钥和私钥(具体步骤详见下图) 2.会在当前用户的家目录的.ssh/生成公钥和私钥, 3.执行ssh-copy-id -i 将公钥文件传输给远程的主机,输入远程主机对应的密码.命令如下: ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] 4.此时在执行登录远程主机?ssh [email protected],不会再输入密码: 原文地址

Linux 多主机SSH互信操作---noob....

创建虚拟机后-- ssh-keygen 生成公钥和私钥对 -rw------- 1 root root 1679 11月 4 09:18 id_rsa-rw-r--r-- 1 root root 395 11月 4 09:18 id_rsa.pub id_rsa 里面是私钥信息 需要保存好. id_rsa.pub 里面就是制作好的公钥 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnxrJDOsPI0XoE7WxzbmGa/i2O1/LW0iVRe3Qe+1iot