要将SSH登录改为密钥登录,需要完成以下步骤:
1. 生成密钥对:在本地计算机上生成SSH密钥对,包括一个私钥和一个公钥。可以使用ssh-keygen命令生成,例如:
```
ssh-keygen -t rsa
```
2. 将公钥复制到服务器:将公钥复制到要登录的服务器上。可以使用ssh-copy-id命令将公钥复制到服务器上,例如:
```
ssh-copy-id username@server_ip
```
这将使用SSH连接到服务器,并将公钥添加到服务器的授权密钥文件中。
3. 配置SSH服务器:在服务器上编辑SSH服务器配置文件,通常位于/etc/ssh/sshd_config。确保以下字段处于以下状态:
```
PubkeyAuthentication yes
PasswordAuthentication no
```
这将启用公钥身份验证并禁用密码身份验证。
4. 重新加载SSH服务器:重新加载SSH服务器配置以使更改生效。可以使用以下命令重新加载SSH服务器:
```
sudo service ssh reload
```
或
```
sudo systemctl reload ssh
```
5. 测试密钥登录:现在应该可以使用私钥进行SSH登录,而无需输入密码。例如:
```
ssh username@server_ip -i ~/.ssh/private_key
```
请确保将“username”替换为您在服务器上的实际用户名,并将“server_ip”替换为服务器的实际IP地址。同样,将“~/.ssh/private_key”替换为本地计算机上私钥文件的实际路径。
请注意,这些步骤基于使用OpenSSH作为SSH服务器和客户端。不同的SSH服务器/客户端可能会有一些细微的差异,但基本原理是相同的。