如何为Ubuntu Server的SSH服务配置公钥认证?
时间: 2024-09-12 20:14:10 浏览: 75
要为Ubuntu Server的SSH服务配置公钥认证,您可以按照以下步骤操作:
1. 在本地计算机上生成SSH密钥对:
打开终端,输入以下命令生成密钥对(如果没有的话):
```
ssh-keygen
```
按照提示操作,您可以设置一个密码来保护您的私钥。如果不设置密码,每次使用私钥时就不需要输入密码。
2. 将公钥复制到Ubuntu Server:
一旦生成了密钥对,就可以将公钥(通常位于`~/.ssh/id_rsa.pub`)添加到服务器的`~/.ssh/authorized_keys`文件中。这可以通过使用`ssh-copy-id`命令来完成:
```
ssh-copy-id username@remote_host
```
其中`username`是您在Ubuntu Server上的用户名,`remote_host`是服务器的地址。系统会提示您输入服务器的密码。
3. 修改SSH配置:
在服务器上,您需要确保SSH服务配置文件允许使用密钥认证。通常位于`/etc/ssh/sshd_config`。使用文本编辑器打开该文件,例如:
```
sudo nano /etc/ssh/sshd_config
```
确保以下行没有被注释,并且设置为正确的值:
```
PubkeyAuthentication yes
```
如果您使用的是默认端口(22),通常不需要做任何更改。但如果您改变了SSH端口,确保也更改了`Port`指令。
4. 重启SSH服务:
修改配置文件后,您需要重启SSH服务来使更改生效。在Ubuntu上,可以使用以下命令:
```
sudo systemctl restart sshd
```
或者
```
sudo service ssh restart
```
根据您的Ubuntu版本,命令可能有所不同。
5. 测试配置:
尝试使用公钥认证从本地计算机连接到Ubuntu Server:
```
ssh username@remote_host
```
如果配置正确,您应该能够无需密码直接登录到服务器。
阅读全文