在Linux系统中设置SSH密钥身份验证,是提升服务器安全性的关键步骤。通过这一设置,你可以避免使用密码登录,从而大大降低账户被盗的风险。以下是如何在Linux系统中设置SSH密钥身份验证的详细步骤:
一、安装OpenSSH工具
首先,请确保你的Linux系统上已经安装了OpenSSH工具。大多数Linux发行版通常会预装该工具,如果你的系统没有安装,可以通过包管理器轻松安装。在Debian/Ubuntu上使用apt安装OpenSSH的命令如下:
sudo apt update
sudo apt install openssh-client openssh-server
在Red Hat/CentOS上使用yum安装OpenSSH的命令如下:
sudo yum install openssh-clients openssh-server
二、生成SSH密钥对
一旦安装了OpenSSH,你就可以使用ssh-keygen命令生成SSH密钥对。命令的基本用法如下:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
其中,-t rsa指定密钥类型为RSA;-b 4096指定密钥长度为4096比特,以提高安全性;-C "your_email@example.com"添加注释,一般用你的邮箱地址。
生成密钥对后,你可以选择将其存储在默认位置(~/.ssh/ 目录下)或选择其他位置。生成的密钥对包括两个文件:私钥文件(id_rsa)和公钥文件(id_rsa.pub)。私钥文件存储在本地,而公钥文件则需要被复制到远程服务器上。私钥是敏感信息,必须妥善保存。
三、将SSH公钥复制到服务器
将公钥复制到服务器有多种方法,其中最简单、最自动化的方法是使用ssh-copy-id命令。这个命令会自动处理将公钥添加到目标服务器的~/.ssh/authorized_keys文件中。命令格式如下:
ssh-copy-id username@your_server_ip
此外,你也可以手动安装公钥。这涉及将你的公钥内容添加到目标服务器上的~/.ssh/authorized_keys文件中。
四、配置SSH服务器
登录到目标服务器,编辑/etc/ssh/sshd_config文件,进行如下设置:
RSAAuthentication yes
PubkeyAuthentication yes
另外,请留意root用户能否通过SSH登录:
PermitRootLogin yes
当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录:
PasswordAuthentication no
最后,重启SSH服务以使配置生效。
通过以上步骤,你就成功在Linux系统中设置了SSH密钥身份验证。这一设置将大大提高你的服务器安全性,让你更加安心地进行远程管理。