要配置 Ubuntu 的 SSH 服务以允许远程连接,并支持使用密钥认证,您需要修改 SSH 的配置文件。以下是详细步骤:
1. 安装 OpenSSH Server(如果还未安装)
首先确保您已经安装了 OpenSSH Server:
sudo apt update
sudo apt install openssh-server2. 编辑 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如果您禁用了密码认证,您应该能够通过密钥连接而不需要输入密码。