SSH配置密钥登陆服务器
要配置服务器通过SSH密钥进行登录,请按照以下步骤操作:
步骤 1:生成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
和~/.ssh/id_rsa.pub
)。可以设置一个密码短语(推荐设置以增加安全性)。
步骤 2:将公钥复制到服务器
-
使用以下命令将公钥复制到服务器上(假设服务器的IP地址为
server_ip
,用户名为user
):ssh-copy-id user@server_ip
系统会提示你输入服务器用户的密码,以便将公钥添加到服务器的
~/.ssh/authorized_keys
文件中。 -
如果没有
ssh-copy-id
命令,也可以手动将公钥添加到服务器:-
首先,显示公钥内容:
cat ~/.ssh/id_rsa.pub
-
然后,使用以下命令连接到服务器:
ssh user@server_ip
-
在服务器上,将公钥内容添加到
~/.ssh/authorized_keys
文件中:mkdir -p ~/.ssh echo "your_public_key_content" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
-
步骤 3:测试SSH密钥登录
- 断开与服务器的现有连接。
-
使用以下命令尝试通过SSH密钥登录到服务器:
ssh user@server_ip
如果一切配置正确,你应该能够不输入密码直接登录到服务器。
步骤 4:禁用密码登录(可选)
-
为了提高安全性,可以在服务器上禁用密码登录。编辑
/etc/ssh/sshd_config
文件:sudo nano /etc/ssh/sshd_config
-
找到以下行并修改:
PasswordAuthentication no
-
保存文件并重启SSH服务:
sudo systemctl restart ssh
通过以上步骤,我们就可以成功配置服务器的SSH密钥登录,并且(可选地)禁用密码登录以提高安全性。