centOS清除密钥?centos密码忘记

用Xshell基于ssh密钥远程连接centos

基于服务器安全考量,我们建议在 CentOS系统中关闭密码登录,改用 SSH密钥进行远程连接。本文将基于 CentOS 7和 Xshell 7软件版本,详细阐述如何在 CentOS下生成密钥对,以及如何在本地导入 Xshell进行连接。

一、在 CentOS 7下生成密钥文件对(私钥和公钥)。

通过执行命令"ssh-keygen-t rsa"并按提示操作,即可在当前登录用户目录下的.ssh文件夹内生成密钥对。如果当前登录用户为 root且系统中无.ssh目录,系统会自动创建。

完成密钥对生成后,使用"cat id_rsa.pub>> authorized_keys"命令复制公钥至 authorized_keys文件,并赋予其适当的权限。最后,确保将 id_rsa文件保存到本地,作为后续操作的备用。

二、配置 Xshell下的密钥连接。

在 Xshell中导入本地 id_rsa文件至用户密钥管理中,并为其设置易区分的名称。接下来,更新连接属性,将连接方式从基于密码改为基于密钥登录。

三、在 CentOS中,禁用基于密码的登录。通过编辑/etc/ssh/sshd_config文件,找到"PasswordAuthentication"并将"yes"修改为"no"。随后,重启 SSH服务以使更改生效。

请注意,在编辑文件时,需确保修改的是不含"#"标记的行,以确保配置的正确性。通过遵循以上步骤,您将能够安全地使用 SSH密钥进行 CentOS的远程连接,提升服务器的访问安全性。

Centos7SSH密钥登陆及密码密钥双重验证详解

一、首先登陆centos,切换用户,切换到你要免密码登陆的用户,进入到家目录,以下我以root为例,命令:

su root

cd~

二、创建钥匙,命令:ssh-keygen-t rsa,一路按Y搞定

三、按照流程走完后会在~/.ssh目录下(用户所在家目录下的.ssh目录)看到id_rsa, id_rsa.pub文件第一个是私有密钥第二个是公共密钥

四、修改SSH配置文件,命令:vim/etc/ssh/sshd_config

#禁用root账户登录,如果是用root用户登录请开启

PermitRootLogin yes

#是否让 sshd去检查用户家目录或相关档案的权限数据,

#这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。

#例如使用者的~.ssh/权限设错时,某些特殊情况下会不许用户登入

StrictModes no

#是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。

#至于自制的公钥数据就放置于用户家目录下的.ssh/authorized_keys内

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile.ssh/authorized_keys

#有了证书登录了,就禁用密码登录吧,安全要紧

PasswordAuthentication no

五、因为在第四步指定了AuthorizedKeysFile的放置位置为.ssh/authorized_keys,所以还需把公钥数据id_rsa.pub附加到 authorized_keys这个档案内才行,命令:

cd~/.ssh

cat id_ras.pub>> authorized_keys

重启SSH服务,命令:systemctl restart sshd.service

六、下载私钥,这里我使用了rz/sz工具(你也可以使用其他方式),系统默认没有安装,先安装,命令:yum-y install lrzsz

SecureCRT配置:选项→会话选项→X/Y/Zmodem,修改上传和下载的目录。

现在开始下载,命令:

cd~/.ssh

sz id_ras

然后到你之前配置的下载目录去找,把私钥导入到SecurtCRT,方法:

选项→会话选项→SSH2,在鉴权一栏中点击公钥(注意因为前面已经禁用了密码登陆,我们还得把密码这一栏的勾去掉,否则会无法登陆),点属性,点击使用会话公钥设置,然后在下方的使用身份或证书文件中,选择你刚才下载来的私钥文件,点确定即可。

七、以上所有配置完成,看网上别的教程还说要注意各文件权限问题,我做实验的过程没有遇到,也可能我使用的是root用户的原因,如果你们在过程中有权限报错,建议权限设置:

~/.ssh/ 700

.ssh/authorized_keys 644

.ssh/id_rsa 600且属于你当前要添加的用户

八、让服务器更安全,开启密码和证书双重验证,先修改SSH配置文件:

vim/etc/ssh/sshd_config

PasswordAuthentication改为yes

然后再加一条:uthenticationMethods publickey,password

重启SSH服务:systemctl restart sshd.service

SecureCRT配置:因为之前在第六步中把密码去掉了,还得把它再勾起来,选项→会话选项→SSH2,把密码这一栏勾起来即可。

个人经验:在配置完成后不要关闭当前SecurtCRT的连接窗口,你可以使用新建连接尝试登陆,以免配置出错,造成服务器无法登陆。

...密钥连接Linux防止远程22端口密码爆破(以centos7为例)

使用ssh密钥连接Linux防止远程22端口密码爆破(以centos7为例)

解决远程ssh爆破问题,封禁IP是方法之一,更安全的策略是采用ssh密钥登录。下面是两种实现方法。

首先,利用Shell脚本定时监控ip登录失败次数,一旦达到预设阈值,将其加入黑名单。示例代码如下:

编写一个定时执行的脚本,定期检查登录失败记录,对于频繁尝试的ip进行封禁。

接着,进行密钥登录的设置:

在Linux端,确保安装了ssh服务,可使用命令`yum install openssh-server`和`yum-y install sshpass`进行安装。

在Windows端,需要安装ssh免密登录的工具,如Putty或Xshell等。

在Windows上生成私钥,使用命令`ssh-keygen`,设置文件名、密码(可选),最后使用`scp`命令将公钥文件`id_rsa.pub`复制到Linux的`/root/.ssh/authorized_keys`目录中。

在Linux侧,需确保`/root/.ssh`目录权限为700,`authorized_keys`文件权限为600,以保护密钥安全。

在`/etc/ssh/sshd_config`文件中,设置允许密钥登录,通常默认已启用,无需手动修改。

重启sshd服务,完成密钥登录配置。

关闭ssh密码登录,避免被破解,可通过宝塔控制面板或修改配置文件`/etc/ssh/sshd_config`,将`PasswordAuthentication yes`更改为`PasswordAuthentication no`,然后重启sshd服务。

重启后,尝试使用非密钥登录的账户,应无法登录。使用已生成私钥的账户进行登录,能够顺利完成。

使用ssh密钥连接Linux,不仅避免了密码爆破风险,还能提供更安全的远程访问方式。

阅读剩余
THE END