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,不仅避免了密码爆破风险,还能提供更安全的远程访问方式。