1. 安装OpenSSH服务器(若未安装)
在Debian系统上,首先确保已安装OpenSSH服务器。若未安装,可通过以下命令安装:
sudo apt update && sudo apt install openssh-server
安装完成后,SSH服务会自动启动,默认监听22端口。
2. 在客户端生成SSH密钥对
在需要连接服务器的客户端机器上,使用ssh-keygen命令生成RSA类型的密钥对(推荐密钥长度4096位,提升安全性):
ssh-keygen -t rsa -b 4096
执行过程中,系统会提示:
~/.ssh/id_rsa,直接按Enter使用默认路径);~/.ssh目录下会包含两个文件:id_rsa(私钥,需严格保密)、id_rsa.pub(公钥,需上传至服务器)。3. 将公钥复制到服务器
将客户端生成的公钥(id_rsa.pub)复制到服务器目标用户的~/.ssh/authorized_keys文件中,常用方法有两种:
ssh-copy-id命令(推荐)ssh-copy-id -i ~/.ssh/id_rsa.pub [用户名]@[服务器IP地址]-p参数指定端口(如-p 2222)。ssh-copy-id,可手动操作:cat ~/.ssh/id_rsa.pub;ssh [用户名]@[服务器IP地址];.ssh目录(若不存在)并设置权限:mkdir -p ~/.ssh && chmod 700 ~/.ssh;authorized_keys文件中:echo "[公钥内容]" >> ~/.ssh/authorized_keys,并设置文件权限:chmod 600 ~/.ssh/authorized_keys。4. 配置服务器SSH服务允许密钥认证
编辑服务器上的SSH配置文件/etc/ssh/sshd_config,修改以下关键参数(确保未被注释):
PubkeyAuthentication yes # 允许公钥认证
AuthorizedKeysFile .ssh/authorized_keys # 指定公钥文件路径
PasswordAuthentication no # 禁用密码认证(测试密钥登录成功后再启用,提升安全性)
若需修改SSH默认端口(如改为2222),可添加或修改Port 2222参数;若需禁止root用户直接登录,可添加PermitRootLogin no参数。
修改完成后,重启SSH服务使配置生效:
sudo systemctl restart ssh
5. 测试SSH密钥认证连接
在客户端使用以下命令测试连接(若修改了SSH端口,需添加-p参数):
ssh -i ~/.ssh/id_rsa [用户名]@[服务器IP地址]
若密钥认证成功,将直接登录服务器,无需输入密码。若设置了私钥密码,需输入私钥密码完成认证。
6. 安全注意事项
id_rsa)是连接服务器的核心凭证,需将其权限设置为600(仅所有者可读写),避免泄露;id_rsa.pub公钥备份至安全位置,若私钥丢失可通过公钥重新生成;ufw)限制SSH端口(默认22或自定义端口)的访问来源,仅允许可信IP地址连接。