centos8设置ssh密钥实现ssh密钥远程登录命令教程

admin3年前主机评测78

centos8怎么设置ssh密钥?我们登录Linux服务器SSH账户都是用什么办法登录的?

我相信很多人都跟我一样,服务器生成的或者设置的ROOT密码,然后通过SSH远程工具进行连接,一般都是通过端口对接的密码登录的。比如搬瓦工相对还安全一些,他的22端口默认是不用的,而是使用的是随机的五个数字的端口。目前,最流行的两种SSH身份验证机制是基于密码的身份验证和基于公钥的身份验证。使用SSH密钥通常比传统的密码身份验证更安全和方便。

实际上,如果我们能用ssh密钥登录,相对比密码登录安全很多的。在这篇文章中介绍了如何在 CentOS 8 系统上生成 SSH 密钥。 我们还将向展示如何设置基于 SSH 密钥的身份验证并在不输入密码的情况下连接到远程 Linux 服务器,我们不要觉得不输入密码不安全,实际上我们只要对接的密钥,一般人是没有我们本地的密钥文件的。

执行以下ls命令查看key文件是否存在:

ls -l ~/.ssh/id_*.pub

如果命令的输出返回类似 No such file or directory, or no matching found 的内容,则表示用户没有 SSH 密钥,我们可以开始继续下一步并生成 SSH 密钥对。

如果我们有 SSH 密钥对,我们可以使用这些密钥或备份旧密钥并生成新密钥。要使用我们的电子邮件地址作为注释生成新的 4096 位 SSH 密钥对,请运行:

ssh-keygen -t rsa -b 4096 -C “your_email@cnbanwagong”

系统将提示您指定文件名:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

回车按 Enter 接受默认文件位置和文件名。接下来,系统会要求我们输入安全密码。 是否要使用密码,由我们自己决定。 密码短语将增加额外的安全层。 如果我们不想使用密码,只需按 Enter。

Enter passphrase (empty for no passphrase):

整个交互看起来是这样的:

我们我们需要验证生成了新的 SSH 密钥对,请键入:

ls ~/.ssh/id_*

返回值:

/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

就是这样。我们已在 CentOS 客户端计算机上成功生成了 SSH 密钥对。

既然生成了 SSH 密钥对,下一步就是将公钥复制到我们要管理的服务器上。

将公钥复制到远程服务器的最简单且推荐的方法是使用 ssh-copy-id 实用程序。 在我们的本地机器终端类型上:

ssh-copy-id remote_username@server_ip_address

该命令将要求我们输入 remote_username 密码:

remote_username@server_ip_address’s password:

一旦用户通过身份验证,公钥文件(~/.ssh/id_rsa.pub)的内容将附加到远程用户的 ~/.ssh/authorized_keys 文件中,并关闭连接。

Number of key(s) added: 1

Now try logging into the machine, with: “ssh ‘username@server_ip_address'”

and check to make sure that only the key(s) you wanted were added.

如果我们的本地计算机上没有 ssh-copy-id,请使用以下命令复制公钥:

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address “mkdir -p ~/.ssh chmod 700 ~/.ssh cat ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys”

完成上述步骤后,我们可以能够登录远程服务器而不会提示输入密码。 要验证它,请尝试通过 SSH 登录到您的服务器:

ssh remote_username@server_ip_address

如果我们没有为私钥设置密码,需要立即登录。 否则,您将被要求输入密码。

要为远程服务器添加额外的安全层,我们可以禁用 SSH 密码身份验证。在继续之前,请确保您可以在没有密码的情况下以具有 sudo 权限的用户身份登录到您的服务器。

请按照以下步骤禁用 SSH 密码验证:

ssh sudo_user@server_ip_address

sudo nano /etc/ssh/sshd_config

vi /etc/ssh/sshd_config

编辑文件。

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM no

sudo systemctl restart ssh

此时,基于密码的身份验证被禁用。

最后:

这里我们已经演示到如何生成新的 SSH 密钥对并设置基于 SSH 密钥的身份验证。我们可以使用相同的密钥来管理多个远程服务器。 预计我们可以设置如何禁用 SSH 密码身份验证并向服务器添加额外的安全层。 默认情况下,SSH 侦听端口 22。一般我们都会修改默认端口的。

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

宿迁高防BGP多线云服务器

宿迁高防BGP多线云服务器近年来随着互联网技术的快速发展各种云计算、云存储等服务被广泛应用。而在这些服务的背后云服务器是最为重要的基础设施之一。云服务器不仅承载着用户的应用程序和数据更是一个稳定、高效...

IDC:2019年全球IT安全相关硬件软件和服务支出达到1031亿美元(2020年全球软件市场)

为了保护企业的数据和资产,全球各地的企业都在加强其网络安全措施。据国际数据公司最新发布的报告显示,2019年全球IT安全相关硬件、软件和服务支出达到了1031亿美元,同比增长8.7%。其中,安全服务是...

域名解析中MX记录与CNAME记录冲突的解决办法

简介:我们公司官网分别是abc和abc指向同一个服务器,当有一天,我们需要添加企业邮箱的MX记录时,我们会发现abc的cname记录会和MX记录冲突,导致无法共存。退而求其次的办法是,将cname改成...

RAKsmart虚拟主机

RAKsmart虚拟主机RAKsmart是一家提供虚拟主机服务的公司提供各种类型的虚拟主机方案以满足不同客户的需求比如网站建设、在线商店、博客等。RAKsmart虚拟主机的优点RAKsmart虚拟主机...

如何自己搭建vps上外网(如何自己搭建vps上外网多少钱)

如何自己搭建vps上外网及如何自己搭建vps上外网多少钱VPS是一种虚拟服务器,可以用来托管网站、应用程序和其他网络服务。如果你想在自己的VPS上搭建一个外网,以便让其他人访问你的网站或应用程序,那么...

100m独享云服务器

100m独享云服务器:让您的网站更快更可靠在当今数字化的时代拥有一个强大的在线资源是至关重要的。对于企业和网站管理员来说一个高效的云服务器是必不可少的因为它能够保证可靠性和速度。 如果您正在开发一个高...