在Linux云服务器上设置SSH密钥是增强安全性和简化登录过程的一种有效方法。以下是具体的步骤,包括在客户端生成SSH密钥对和在服务器上配置公钥:
一、在客户端生成SSH密钥对
生成SSH密钥对:在本地计算机(客户端)上打开终端,输入以下命令生成一个新的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),或者指定一个自定义路径:
Enter file in which to save the key (/home/your_username/.ssh/id_rsa): [Press Enter]
然后,系统会提示你输入一个密码短语(Passphrase),建议设置一个安全的密码短语,或者直接按回车键跳过。
生成完成:生成完成后,会在指定目录下生成两个文件:
id_rsa(私钥)
id_rsa.pub(公钥)
二、将公钥复制到服务器
使用ssh-copy-id命令:在终端中运行以下命令,将公钥复制到远程服务器的授权密钥文件中(假设你的服务器IP为192.168.1.1):
ssh-copy-id user@192.168.1.1
这将提示你输入远程服务器用户的密码,并自动将公钥添加到~/.ssh/authorized_keys文件中。
公钥(如果ssh-copy-id不可用):
先查看公钥内容:
cat ~/.ssh/id_rsa.pub
登录到远程服务器:
ssh user@192.168.1.1
创建.ssh目录并设置权限(如果没有):
mkdir -p ~/.ssh
chmod 700 ~/.ssh
将公钥添加到authorized_keys文件:
echo "your_public_key_content" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
其中"your_public_key_content"是你在本地机器上查看的公钥内容。
三、测试SSH密钥登录
退出远程服务器:
exit
使用密钥登录:现在,你可以使用SSH密钥登录到远程服务器,而无需输入密码:
ssh user@192.168.1.1
四、禁用密码登录(可选但推荐)
为了进一步提高安全性,可以禁用SSH密码登录,只允许密钥认证:
编辑SSH配置文件:在远程服务器上编辑/etc/ssh/sshd_config文件:
sudo nano /etc/ssh/sshd_config
修改以下配置项:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
重启SSH服务:
sudo systemctl restart sshd
通过以上步骤,你已经成功在Linux云服务器上设置了SSH密钥登录,并可选择禁用密码登录以增强安全性。