ssh公钥认证不改变系统文件

Posted

技术标签:

【中文标题】ssh公钥认证不改变系统文件【英文标题】:Ssh public key authentication without changing system files 【发布时间】:2015-04-06 14:36:07 【问题描述】:

我正在更改不同的参数,如 RSAAuthenticationPubkeyAuthenticationPasswordAuthentication (sudo vim /etc/ssh/sshd_config) 以禁用 ssh 密码验证以强制 ssh 仅通过公钥登录。

这些实验对许多用户产生了不利影响,因为他们在尝试ssh 到服务器时突然发现“连接被拒绝”。我想避免这些实验。有什么办法可以在不接触/etc/ssh/ssd_config之类的系统文件的情况下启用公钥身份验证?

【问题讨论】:

【参考方案1】:

当然。设置一个备用配置文件,并在试验时在另一个端口上运行 sshd:

cp sshd_config sshd_config_working
/usr/sbin/sshd -p 2222 -f sshd_config_working

现在您可以连接:

ssh -p 2222 user@localhost

您可以根据需要进行任意数量的更改,直到它按需要运行。此时,将您的 _working 配置复制回主配置文件并重新启动 sshd。

或者,停止在生产服务器上闲逛并设置虚拟机或容器进行测试,您可以在其中随意修改 sshd 配置而不会影响任何人。

【讨论】:

感谢您的宝贵回复。是的,我与我的系统管理员讨论了您提到的替代方案。但我将在下周讨论打开端口 2222 并在那里复制配置文件。同时我搜索了开放22以外的端口,找到了链接,想知道你的cmets:adayinthelifeof.nl/2012/03/12/… 还有一个问题 larsks,我的理解是在我将端口从 22 更改为 2222 之后,我只需要使用“ssh -p 2222 user@localhost”连接到服务器,而其他人登录命令保持不变(ssh user@localhost)。我希望我是对的 您的第二条评论是正确的(您将使用备用端口连接到您的“实验性”sshd,普通用户不会受到影响)。您链接到的文章与使用备用端口来试验配置无关;它正在解决使用备用端口作为安全措施的做法,因此与您正在做的事情无关。

以上是关于ssh公钥认证不改变系统文件的主要内容,如果未能解决你的问题,请参考以下文章

1106

linux系统开启秘钥认证登录详解

CentOS系统实现SSH无密码登录的方法

Linux系统ssh普通用户免密认证

Windows系统下实现服务器SSH免密登录

利用公钥认证登录远程服务器