Linux 更改密码登录方法 用密钥安全登录,以避免暴力破解密码 列印

  • 0

首先确保你的系统安装了OpenSSL

 

openssl -V

 

# 在正常情况下,会有大量内容被返回。如果提示 -bash: openssl: 命令未找到,说明未安装。请使用以下命令安装:

# CentOS 系统:

Yum install openssl -y

 

# Debian/Ubuntu 系统

apt-get install openssl -y

生成密钥对

当我们执行以下命令时,将生成 ssh 密钥对(私钥 + 公钥),该对根据以下提示生成。

 

SSH-Keygen

生成公私RSA密钥对。

 

输入保存密钥的文件(/root/.ssh/id_rsa):

# 输入要保存的密钥文件位置,直接按回车。

 

创建了目录'/root/.ssh'。

 

进入密码短语(空无密码短语):

# 输入钥匙密码,你可以直接输入或留空,或者输入密码以进一步增强安全性(钥匙+密码双重保险)

再次输入同一个密码短语:

# 重复密钥密码

 

您的身份已保存在 /root/.ssh/id_rsa。

# 你的私钥位置 /root/.ssh/id_rsa

你的公钥已保存在 /root/.ssh/id_rsa.pub 中。

# 你的公钥位置 /root/.ssh/id_rsa.pub

 

密钥指纹为:

7c:25:bd:54:f5:fc:60:c0:86:c1:a0:32:7d:8a:80:c4 root@debian

钥匙的随机艺术图像是:

+--[ RSA 2048]----+

| .o.+..哦..|

| o.. o o + o.|

|. 呃...... . O + o|

|. + + o o o.|

|.. S.. .|

|. |

|. |

| |

| |

+-----------------+

配置服务器公钥

生成密钥对后,我们需要在服务器上配置它,才能使用:

 

配置公钥

光盘.ssh

# 进入.ssh目录

 

是 -A

#...id_rsa id_rsa.pub

# 查看当前文件夹(/root/.ssh/)下的公钥(id_rsa.pub)和私钥(id_rsa)

 

MV id_rsa.pub authorized_keys

# 重命名公钥 (id_rsa.pub)

 

是 -A

#...authorized_keys id_rsa

# 再次检查当前文件夹(/root/.ssh/)下的公钥是否成功重命名

 

CHMOD 600 authorized_keys

CHMOD 700 ~/.ssh

# 然后修改密钥文件的权限,以避免被其他用户修改或删除。

# chmod 600——只有所有者拥有读写权限。

# chmod 700——只有拥有者拥有读取、写入和执行权限。

配置SSH

然后我们需要配置SSH,并且需要启用密钥登录选项(通常默认是启用的)

 

vi /etc/ssh/sshd_config

打开配置文件,查找以下参数:

 

RSAA自我解读是的

PubkeyAuthentication 是的

# 是的 意味着打开密钥登录

通常默认是开启的,如果不是,就改为“是”。

 

然后重启SSH:

 

/etc/init.d/ssh 重启

# 如果此提示找不到该服务,请尝试 /etc/init.d/sshd restart

# CentOS7 然后使用:systemctl restart sshd

配置客户端私钥

服务器配置完成后,我们还需要配置SSH连接客户端。

 

本地获取私钥

cat /root/.ssh/id_rsa

# 如果私钥生成位置不同,自己更改

首先,我们读取id_rsa键文件,然后屏幕上会输出大量键。我们在本地电脑上创建一个新的文本文件,把密钥复制到屏幕上,再写入文件。该文件名为 id_rsa(名称是任意的,但密钥文件必须保存!)。

 

# 密钥文件是这样的

 

-----开始RSA私钥-----

程序类型:4,加密

DEK-信息:AES-128-CBC,EA47822BC49A9E56338A99D07084DA38

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

...

...

-----终止RSA私钥-----

SSH连接工具可以导入私钥连接

 

Xshell 导入私钥

首先,打开当前会话-连接-用户认证的属性。

 

选择公钥作为用户认证方法,然后点击浏览按钮。

 

 

 

在用户密钥管理窗口中,点击导入按钮,选择我们刚刚检索id_rsa私钥文件。

 

选择后,你将被要求输入私钥密码。如果你在生成密钥对时设置了密码,那就输入密码,否则留空。然后点击确定按钮继续。

 

 

 

 

 

选择你刚添加的用户密钥,点击确定按钮。(为了更好地识别,你可以重命名该名称以避免混淆密钥属于哪个服务器)

 

 

 

此时,我们返回用户认证设置窗口,输入用户名:root,password:用户密钥的密码,然后点击确定按钮。

 

 

 

然后我们可以断开服务器连接,然后尝试重新连接服务器(用密钥连接)。如果出了什么问题,也没关系。我们还没关闭密码登录。你也可以用密码登录进行故障排除。

 

如果确定密钥可以用来正常登录,那么我们需要关闭密码登录方法。

 

关闭密码登录

我们打开SSH配置文件,找到以下参数。

 

vi /etc/ssh/sshd_config

 

# 默认情况下,这个参数选项是 no,如果没有,则改为 no,如果它前面有注释字符 # ,则删除#

密码认证 否

最后重启SSH:

 

/etc/init.d/ssh 重启

# 如果此提示找不到该服务,请尝试 /etc/init.d/sshd restart

其他指令

多个服务器共享同一密钥

当你有很多服务器,但又不想为每个服务器生成单独的密钥时,你可以为多个服务器共享一个密钥。

 

公钥位置也与上面教程相同。假设我们是 ROOT 用户,那么在 /root 目录下创建一个新的 .ssh 目录:

 

mkdir /root/.ssh

然后通过FTP/SFTP将你的公钥(authorized_keys)上传到其他服务器的/root/.ssh目录

 

或者通过读写写入其他服务器的 /root/.ssh 目录

 

猫authorized_keys

# 如果你能直接在本地打开复制的内容,就在服务器上读取你的公钥文件内容

 

echo -e “xxxx”> /root/.ssh/authorized_keys

# 然后把上面代码的 xxxx 改成你复制的公钥文件内容,再用上述命令把它写入 /root/.ssh/authorized_keys 文件。


这篇文章有帮助吗?

« 返回