如何为两个客户端用户配置独立SSH密钥以连接同一服务器用户
如何为两个客户端用户配置独立SSH密钥以连接同一服务器用户
你遇到的这个场景真的太常见了——不管是家里的电脑还是工作本,想用各自的专属SSH密钥连同一个服务器用户,其实配置起来很简单,我结合你实际操作的经验整理了详细步骤:
一、在每个客户端生成独立的SSH密钥对
不管是家里PC的HomeUser,还是工作笔记本的WorkUser,都要在各自机器上生成专属的密钥对,这样才能区分不同设备:
- 在HomeUser的终端执行:
(ssh-keygen -f ~/.ssh/home_user_key-f参数用来指定密钥的存储路径和名称,方便后续区分;按提示一路回车就行,不想设置密钥密码可以直接跳过,当然设置密码会更安全) - 在WorkUser的终端执行:
同样按提示完成生成,这样两个客户端就有了各自独立的密钥对:HomeUser用ssh-keygen -f ~/.ssh/work_user_keyhome_user_key,WorkUser用work_user_key。
二、将客户端公钥添加到服务器的授权列表
核心就是把每个客户端的公钥(后缀为.pub的文件),添加到服务器上ServerUser的~/.ssh/authorized_keys文件里,这里分两种场景:
场景1:服务器还开启了密码登录(最省事)
如果服务器允许密码登录,直接用ssh-copy-id工具一键上传公钥:
- HomeUser终端执行:
输入ServerUser的密码后,公钥就会自动添加到服务器的授权列表里,之后HomeUser就能用密钥登录了:ssh-copy-id -i ~/.ssh/home_user_key.pub ServerUser@你的服务器地址ssh -i ~/.ssh/home_user_key ServerUser@你的服务器地址 - WorkUser终端执行同样操作:
输入密码完成上传后,WorkUser也能用自己的密钥登录:ssh-copy-id -i ~/.ssh/work_user_key.pub ServerUser@你的服务器地址ssh -i ~/.ssh/work_user_key ServerUser@你的服务器地址
场景2:服务器已经关闭了密码登录(就像你遇到的情况)
如果之前为了安全已经把服务器的密码登录关了,那就临时开启一下,操作完再恢复就行:
- 先通过已经能正常登录的客户端(比如HomeUser)连接到服务器:
ssh -i ~/.ssh/home_user_key ServerUser@你的服务器地址 - 编辑SSH服务配置文件
/etc/ssh/sshd_config,找到PasswordAuthentication选项改成yes:
找到sudo nano /etc/ssh/sshd_configPasswordAuthentication no,改成PasswordAuthentication yes,按Ctrl+O保存、Ctrl+X退出编辑器。 - 重启SSH服务让配置生效:
sudo systemctl restart sshd - 回到WorkUser的终端,用
ssh-copy-id上传公钥:
输入ServerUser的密码完成上传。ssh-copy-id -i ~/.ssh/work_user_key.pub ServerUser@你的服务器地址 - 回到服务器终端,把
PasswordAuthentication改回no,再重启SSH服务恢复安全设置:sudo nano /etc/ssh/sshd_config # 改回PasswordAuthentication no sudo systemctl restart sshd - 最后验证WorkUser的密钥登录是否正常:
ssh -i ~/.ssh/work_user_key ServerUser@你的服务器地址
这样两个客户端就都能使用各自独立的SSH密钥连接到服务器的ServerUser了,彼此密钥互不影响,安全性也更高。
备注:内容来源于stack exchange,提问作者antimatter
相关产品推荐
相关产品推荐

