Debian SSH密钥认证步骤
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地址]
若服务器SSH端口非默认22,需添加-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公钥备份至安全位置,若私钥丢失可通过公钥重新生成; - 定期更换密钥:建议每6-12个月更换一次密钥对,提升安全性;
- 限制SSH端口访问:通过防火墙(如
ufw)限制SSH端口(默认22或自定义端口)的访问来源,仅允许可信IP地址连接。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian SSH密钥认证步骤
本文地址: https://pptw.com/jishu/742957.html
