Centos设置SSH密匙登录,以及注意事项

本文适合小白看看,大佬就别喷我了

今天入手了一台阿里的轻应用云服务器,2H8G,第一时间就是改yum源/上宝塔/改端口和配置SSH密匙登录,中间遇到点坑.所以今天就拿我遇到的问题水一下了.

Snipaste_2019-10-15_19-19-42.png

本人其实对linux没多少了解,主要因为工作和部署环境时用到linux才懂些...
连接SSH这个就不说了,直接从配置SSH密匙开始.

1. 生成密匙对:

在控制台输入命令: ssh-keygen

Snipaste_2019-10-15_19-32-55.png

[root@mopay ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #默认回车就可以了
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:DGapNamYkmlWKDsuR+UMKmzJbSYJwjC5AHBRtnBUaNQ root@mopay.novalocal
The key's randomart image is:
+---[RSA 2048]----+
|B.+=*+.          |
|=o.+o.Eo         |
|=+.oo O          |
|B==B * +         |
|OX++=   S        |
|*++              |
|...              |
|..               |
|                 |
+----[SHA256]-----+

第一步生成密匙对就完成了.

2. 安装公钥

控制台输入命令:

[root@mopay ~]# cd .ssh  # 打开刚才生成密匙对保存的目录
[root@mopay .ssh]# cat id_rsa.pub >> authorized_keys  # 安装公钥
[root@mopay .ssh]# chmod 600 authorized_keys  # 设置文件权限
[root@mopay .ssh]# chmod 700 ~/.ssh  # 设置文件夹权限

第二步安装公钥到服务器就完成了.

3. 最后配置SSH

控制台输入命令:

vim /etc/ssh/sshd_config  # 编辑SSH配置文件

几个比较重要的配置项(默认不能编辑,按 i 进入编辑):
Port 22  # 这是SSH端口,默认是22,可以修改
PermitRootLogin yes  # 是否允许以root用户登录  yes/no
RSAAuthentication yes  # 开启密匙登录用到的 yes/no
PubkeyAuthentication yes  # 开启密匙登录用到的 yes/no
PasswordAuthentication no  # 是否开启密码登录 yes/no

配置好以后,按 Esc 键退出编辑,然后输入:wq 保存退出.
最后重启SSH服务: service sshd restart  

到这来就完成了SSH密匙登录.

一些特殊情况

firewall-cmd防火墙问题

有些同学可能是cengtos6,按上方配置好以后,就可以使用了.

但是,如果你的是centos7,并且修改了SSH端口号,就会出现无法连接SSH的情况.
这是因为centos7好像是默认开启firewall-cmd防火墙的,所以改了端口就连不上SSH了.
控制台输入命令:

firewall-cmd --state  # 查看防火墙状态.
firewall-cmd --zone=dmz --list-ports  # 查看所有打开的端口.

解决方法:
1.添加你刚才自定义的端口号到防火墙规则
控制台输入命令:

firewall-cmd --zone=dmz --add-port=你的端口号/tcp  # 添加一个端口号
firewall-cmd --reload  # 更新防火墙规则

2.关闭防火墙
控制台输入命令:

systemctl stop firewalld
systemctl disable firewalld
安全增强式Linux(SELinux)

控制台输入命令:

getenforce # 显示当前SELinux的应用模式,是强制、执行还是停用

如果输出: enforcing 就是开启了强制执行

解决方法:
现在控制台输入命令 vim /etc/selinux/config 编辑配置文件
SELINUX=enforcing 修改为 disabled 即可禁用Selinux
最后需要重启一下服务器。

OK,到这里,你就可以正常的使用SSH密匙登录了

最后修改:2020 年 01 月 05 日 11 : 24 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论