linux中如何设置SSH密钥提高登录安全性之前不关心网络安全问题,导致服务器被黑,最后后悔莫及。本文将介绍安全登录协议SSH的创建和使用,帮助您提高安全性。SSH(SecureShell)是一种加密的网络协议,允许用户通过不安全的网络安全地访问远程计算机。SSH密钥是一种更安全的登录SSH服务器的方法,因为它们不易受到常见的暴力破解密码的攻击。虽然SSH支持基于密码的身份验证,但通常建议使用SSH密钥。生成SSH密钥对会创建两个长字符串:公钥和私钥。您可以将公钥放在任何服务器上,然后使用有权访问私钥的SSH客户端连接到服务器。当公钥和私钥匹配时,SSH服务器无需密码即可授予访问权限。还可以通过使用可选(但强烈推荐)密码保护私钥来进一步提高密钥对的安全性。具体操作要创建密钥对,首先要在客户端机器上创建一个密钥。这可能是本地计算机。在本地命令行输入命令:ssh-keygen-ted25519[root@localhost~]#ssh-keygen-ted25519Generatingpublic/privateed25519keypair.Enterfilewhichtosavethekey(/root/.ssh/id_ed25519):输入命令后,会看到输出命令确认信息,需要输入密钥存放地址。如果您使用的是不支持创建ed25519密钥的旧系统,或者您连接到的服务器不支持它们,您将需要创建一个强rsa密钥对:ssh-keygen-trsa-b4096复制这将将-t"type"标志添加到rsa,并添加-b4096"bit"标志以创建4096位密钥。指定保存密钥的位置ssh-keygen命令的第一个提示是询问保存密钥的位置:Enterfilewhichtosavethekey(/root/.ssh/id_ed25519):可以直接回车保存在此处将.ssh文件复制到您的主目录中的默认位置,或者在您的系统上指定一个地址目录。这里我们直接回车保存默认地址。创建密码并确认保存地址后,会提示设置密码:Enterpassphrase(emptyfornopassphrase):密码也可以默认不设置,但强烈建议设置密码,因为密钥的安全性仍然是基于设置的复杂程度。如果没有密码短语的私钥落入未经授权的他人手中,他们将能够登录到您使用相关公钥配置的任何服务器。回顾一下,整个密钥生成过程如下所示:[root@localhost~]#ssh-keygen-ted25519Generatingpublic/privateed25519keypair.Enterfilewhichtosavethekey(/root/.ssh/id_ed25519):创建目录“/root/.ssh”。Enterpassphrase(emptyfornopassphrase):Entersamepassphraseagain:Youridentificationhasbeensavedin/root/.ssh/id_ed25519.您的公钥已保存在/root/.ssh/id_ed25519.pub中。密钥指纹为:SHA256:hRTOxc4IFviuv0vr4q61fGTee2Xo5Ol/gmUtZh/Y55sroot@localhost.localdomain密钥的随机图像为:+--[ED25519256]--+|...哦。||.o+o。||o.++。||...o||.年代。+||+oX+.||.=..+Xo+||哦哦..*。哦||.+==*o.+...oE.|+----[SHA256]-----+公钥现在位于/root/.ssh/id_ed25519.pub。私钥现在位于/root/.ssh/id_ed25519。将公钥复制到远程服务器生成密钥对后,您可以将公钥放在要连接的服务器上。可以使用ssh-copy-id命令将公钥复制到服务器的authorized_keys文件。确保替换示例用户名和地址:ssh-iduser@server_address命令完成后,您将能够通过SSH登录服务器,而不会提示输入密码。但是,如果您在创建SSH密钥时设置了密码,则需要输入密码。主要是因为本地ssh客户端需要做解密,而不是远程服务器。禁用基于密码的SSH身份验证将SSH密钥复制到服务器后,您可以通过将SSH服务器配置为禁用基于密码的身份验证来完全禁用密码登录。在禁用基于密码的身份验证之前,请确保您可以使用SSH密钥成功登录到服务器,并且服务器上没有其他用户使用密码登录。要禁用基于密码的SSH身份验证,请打开SSH配置文件。它通常位于:sudonano/etc/ssh/sshd_config此命令将在nano文本编辑器中打开该文件。在文件中找到包含PasswordAuthentication的行(如果不存在则创建该行),确保没有#在行的开头用a注释掉,并将其更改为no:/etc/ssh/sshd_configPasswordAuthenticationno完成文档后保存并关闭。在nano中,使用CTRL+O保存,使用ENTER确认文件名,然后使用CTRL+X退出。重新加载sshd服务以使这些更改生效:sudosystemctlreloadsshd在退出当前SSH会话之前,在另一个终端中建立测试连接以验证它仍然可以连接。结论在本文中,我们创建了一个SSH密钥对,将公钥复制到服务器,并(可选)完全禁用基于密码的身份验证,这有助于我们提高服务器的安全性。想从科技巨头那里了解更多?开发中遇到的问题在哪里讨论?如何获取海量金融科技资源?恒生LIGHT云社区,恒生电子打造的金融科技专业社区平台,分享实用技术干货、资源数据、金融科技行业动态,拥抱所有金融开发者。扫描下方小程序二维码加入我们吧!
