核心要点
- SSH密钥是一种安全的远程服务器访问方式,无需每次都输入密码。它由公钥和私钥组成。
- 在Linux系统中,可以使用
ssh-keygen
命令生成SSH密钥对。为了提高安全性,可以考虑添加密码保护。 - 通过
ssh-copy-id
命令或手动将公钥内容粘贴到远程服务器的authorized_keys
文件中,可以将SSH公钥复制到远程服务器。
SSH密钥允许你在保证远程服务器账户安全的前提下,实现无密码登录。在Linux系统上创建SSH密钥非常简单。
什么是SSH密钥?
SSH密钥是一组通过加密技术生成的密钥,它允许用户安全地登录到远程计算机。SSH密钥实际上是一个密钥对,包含一个公钥和一个私钥。你可以将公钥复制到远程计算机,远程计算机将使用这个公钥来验证你的身份。私钥是保密的,应该始终安全地保存在你的本地计算机上。
请绝对不要与任何人分享你的SSH私钥!
在登录过程中,远程服务器会使用SSH来比较你的公钥和私钥。如果它们匹配,你将被授权进入远程系统。这种密钥对系统不仅方便快捷,还能有效地保证安全性。
如何生成远程密钥
要生成SSH密钥对,只需在Linux命令行中使用ssh-keygen
命令即可。该命令会提示你选择保存密钥的文件位置,并让你选择输入或不输入密码(密码是可选的)。设置密码可以为你的密钥增加额外的安全保护层。
如果你选择了使用密码,请务必记住它!如果忘记密码,你将无法使用该密钥登录。
如果你希望实现无密码登录,只需在提示输入密码时直接按回车键,不输入任何内容即可。
默认情况下,ssh-keygen
使用Ed25519算法。对于大多数情况,这种算法已经足够安全。你可以使用-t
标志来指定你想要使用的其他算法。一般来说,除非你的服务器不支持默认的算法,否则你不需要更改它。你可以查阅ssh-keygen的手册页来了解如何生成不同类型的密钥对。
将新SSH密钥添加到远程计算机
现在你已经生成了密钥对,接下来你需要将公钥复制到远程服务器。有两种方法可以实现这一目的。
第一种方法,也是最简单的方法是使用ssh-copy-id
工具。只需使用远程服务器帐户的用户名和地址来调用它即可:
ssh-copy-id [email protected]
输入你的远程服务器密码,该工具会将你的公钥自动复制到远程服务器。
现在你可以尝试登录远程服务器:
ssh [email protected]
如果ssh-copy-id
不起作用,你必须手动复制和粘贴你的公钥。你的公钥文件通常位于你本地用户主目录的.ssh
文件夹下,文件名以.pub
结尾。打开这个文件,将其中的内容复制并粘贴到远程计算机上.ssh/authorized_keys
文件中。
保存该文件后,你现在应该可以使用SSH登录服务器了。请确保该文件的权限设置为只有你可以写入,否则可能会遇到权限错误。