在我的系统上,ssh客户端身份验证被允许用于root,但我希望ssh客户端身份验证只允许非root用户使用。要禁用ssh作为根用户,我将PermitRootLogin yes更改为PermitRootLogin no,但现在无法将ssh转到我的平台上。
有人能让我知道如何只为非根用户启用ssh客户端身份验证吗?
发布于 2013-11-04 11:08:47
ssh服务器的配置是在名为/etc/ssh/sshd_config的文件中完成的。您应该打开这个文件并检查以下内容:
( 1)是否有下列指示?
AllowUsers ...
AllowGroups ...
DenyUsers ...
DenyGroups ...如果是这样的话,你将不得不改变它,让连接成为你自己。
2)是否有一项指示规定:
PasswordAuthentication no如果存在,则意味着ssh身份验证只能通过加密密钥进行。因为您显然没有一个,这实际上禁止您进入系统。
将此更改为
PasswordAuthentication yes以便您可以测试这是否是您的问题的全部解决方案。一旦您说服自己ssh也为您工作,为自己建立一个加密密钥,并再次关闭PasswordAuthentication。在网络上有许多有用的指南,说明如何使用密钥而不是密码进行身份验证。去做吧。你的安全会大大提高。
要完成此测试,您必须重新启动SSH服务器,否则/etc/ssh/sshd_config中引入的更改将不会生效。这取决于您的系统:
sudo service ssh restart或者sudo systemctl守护进程-重新加载sudo systemctl重新启动sshd
(第一个是Debian和衍生工具,第二个是Arch、Fedora和一般的systemd系统)。
3.)有指示吗?
PermitRootLogin no当您尝试以root用户身份登录时?如果是的话,将上述否定改为“是”。
如果这仍然不能解决问题,则必须提供调试详细信息,这些信息可以通过在客户端计算机上发出命令获得。
ssh me@my_pc -vv它输出相当多的数据,对此任务很有用。服务器上有一个类似的选项(由于明显的安全原因,信息要丰富得多):您首先需要停止服务,
sudo service ssh stop
sudo systemctl stop sshd然后用
sudo /usr/sbin/sshd -Dd
sudo /usr/bin/sshd -Dd同样,对于这两种类型的系统(我不确定除了Arch之外的systemd发行版,也许第一种形式适用于除Arch之外的所有系统)。
这将生成调试所需的信息。
发布于 2013-11-04 08:14:37
不确定您使用的是哪种Linux / Unix。我经常使用Ubuntu,它是这样的:
默认情况下,允许以正常用户的身份通过SSH登录。您可以通过
ssh -l myuser myhost或通过
ssh myuser@myhost你试过像这样吗?如果是,我可以想到以下常见的失败原因:
要进行调试,尝试在尝试使用ssh登录时使用-vvv,因为这将为您提供大量有关SSH正在尝试什么以及发生了什么的调试消息。
https://unix.stackexchange.com/questions/98781
复制相似问题