服务器ssh安全配置

本文详细介绍了如何禁止root用户直接SSH登录,推荐使用普通用户权限,包括创建用户、修改密码、配置PermitRootLogin为no、修改SSH端口号、使用SSH密钥对进行无密码登录以及关闭密码认证。
摘要由CSDN通过智能技术生成

禁止root登录,使用其他普通用户登录后再切换到root

1.创建普通用户test

sudo useradd -m test

2.root用户切换test用户

sudo su - test

3.修改普通用户密码

sudo passwd test

如果test用户密码修改不了,切换到 root 用户

su - root

直接运行修改test用户密码

passwd test

test用户修改root用户目录需要在命令行前加上sudo

试一下test用户切换root,切换root用户有两中方式

方式一:sudo -i

如果报错test is not in the sudoers file.  This incident will be reported

需通过su - root登录到root用户,用visudo可以安全地编辑sudoers文件,找到授予用户sudo权限的部分,并添加如下行test ALL=(ALL) ALL,保存退出,再切换到test用户进行测试

方式二:su - root

(以下4,5,6步骤确保在禁止 root 用户登录之前,你可以通过test用户切换到root用户,或者你已经为系统创建了至少一个具有管理员权限的用户,以免因为意外情况导致无法登录到系统。)

4.编辑/etc/ssh/sshd_config文件

vi /etc/ssh/sshd_config

5.找到PermitRootLogin选项,设置为no,如果注释掉,就打开,如果没有,就添加一条

PermitRootLogin no

6.修改完成,保存并关闭文件,重启sshd服务

sudo systemctl reload sshd

完成以上步骤后,root 用户将无法通过 SSH 登录到系统中。

修改SSH端口号,避免使用默认端口,增加安全性,新的ssh端口号12202

1.修改之前先备份一下sshd文件

cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup

2.编辑/etc/ssh/sshd_config文件

vim /etc/ssh/sshd_config

找到并更改端口号

Port <新端口号>

保存并关闭

3.重启ssh服务

systemctl restart sshd

4.阿里云安全组配置需添加上新的ssh端口号

5.测试新端口连接(ssh要使用绝对路径)

ssh -p <new_port_number> <your_username>@<your_server_ip>

6.使用netstat查看监听的端口和进程

netstat -atunlp | grep sshd

ssh使用密钥登录,无需密码登录ssh

1.在普通用户test生成SSH密钥对

ssh-keygen -t rsa -b 4096

提示你生成到(/home/test/.ssh/id_rsa)目录下

可以看到生成两个文件,其中id_rsa为私钥,这个绝不能外泄。id_rsa.pub为公钥,可以对外发布。而且这个公钥也是我们也要传给需要登录的服务器上才能实现密钥认证!

2.复制公钥到远程主机

(如果没有改端口号还是默认的22)

ssh-copy-id -i ~/.ssh/id_rsa.pub -p <新端口号> test@服务器ip

会提示输入yes,再输入test用户密码,输入完成后再次查看发现多了两个文件

如果 ssh-copy-id 命令不可用,你可以手动将公钥内容添加到远程主机上 test 用户的 authorized_keys 文件中。你可以将本地计算机上公钥文件 id_rsa.pub 的内容复制到剪贴板,并使用SSH连接到远程主机,然后将公钥内容粘贴到 ~/.ssh/authorized_keys 文件中。

3.保存id_rsa私有密钥到本地计算机

在本地你要存放的路径(这里以D:\tools\Xshell7\服务器二id_rsa示例)打开,并执行以下命令

D:\tools\Xshell7\服务器二id_rsa>scp -P <端口号> test@服务器ip:/home/test/.ssh/id_rsa ./

输入yes和test用户密码即可,可以看到成功导入到本地

4.再次连接test用户选择用密钥连接,导入私有密钥即可

(注意:执行以下两步时,确保test用户能够使用私钥能登录服务器,否则可能将无法使用密码登录到服务器。)

5.关闭使用密码登录,test用户切换到root用户,编辑SSH服务器配置文件

vi /etc/ssh/sshd_config

找到并编辑 PasswordAuthentication 选项,将其设置为 no

PasswordAuthentication No

6.保存并关闭文件,重启让配置生效

systemctl restart sshd

现在好了,用户是无法通过密码ssh远程登录到服务器端了!那么现在就请保存好你的私钥吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值