要配置 Ubuntu 的 SSH 服务以允许远程连接,并支持使用密钥认证,您需要修改 SSH 的配置文件。以下是详细步骤:
1. 安装 OpenSSH Server(如果还未安装)
首先确保您已经安装了 OpenSSH Server:
sudo apt update
sudo apt install openssh-server
2. 编辑 SSH 配置文件
SSH 配置文件位于 /etc/ssh/sshd_config
。使用文本编辑器vim、nano
打开这个文件,例如 nano
:
sudo nano /etc/ssh/sshd_config
或
sudo vim /etc/ssh/sshd_config #打开文件编辑后按i进入编辑,ESC退出编辑
3. 修改配置文件
在文件中,您可以进行以下修改:
允许使用密钥认证: 确保以下行是启用的(没有被注释掉,即没有
#
符号):PubkeyAuthentication yes
禁用密码认证(可选): 如果您希望只通过密钥连接(增加安全性),可以禁用密码认证,找到并修改以下行:
PasswordAuthentication no
如果您仍希望保留密码认证,可以跳过此步骤。
允许根用户通过 SSH 登录(如果需要): 如果您希望根用户能够通过 SSH 登录,请确保以下行设置为
yes
,但是出于安全原因,不建议这样做:PermitRootLogin yes
更安全的方法是使用普通用户和
sudo
来执行需要的命令。设置 SSH 服务的端口(可选): 如果您希望更改默认端口(22),可以修改以下行:
Port 22
请记得在防火墙中相应地允许新端口。
4. 保存并关闭文件
在 nano
中,按 CTRL + O
保存文件,然后按 CTRL + X
退出。
再vim
中按ESC
退出编辑,然后按shift+:
然后输入wq
保存退出
5. SSH 服务相关命令
修改完配置文件后,您需要重新启动 SSH 服务以使更改生效:
sudo systemctl restart ssh #重启ssh服务
sudo systemctl enable ssh #设置ssh服务开机自启动
sudo systemctl status ssh #查看ssh服务状态
6. 生成 SSH 密钥对
在客户端计算机上(即您将用来连接的计算机),生成 SSH 密钥对(如果您还没有密钥对):
ssh-keygen
默认情况下,它会在 ~/.ssh/id_rsa
和 ~/.ssh/id_rsa.pub
中生成密钥。您可以按 Enter
继续,接受默认设置。
7. 将公钥复制到服务器
使用 ssh-copy-id
将公钥复制到远程服务器。替换 username
和 hostname
:
ssh-copy-id username@hostname
系统将提示您输入密码,以便将公钥添加到远程服务器的 ~/.ssh/authorized_keys
文件中。
也可以手动替换,将生成的公钥添加到要连接的服务器的~/.ssh/authorized_keys
文件中。
8. 测试 SSH 连接
在客户端计算机上,您现在可以测试 SSH 连接,使用密钥进行身份验证:
ssh username@hostname
如果您禁用了密码认证,您应该能够通过密钥连接而不需要输入密码。