在 Linux (Debian Squeeze) 上,我想对某些用户(选定组或除 root 之外的所有用户)禁用使用密码的 SSH 登录。但我不想为他们禁用使用证书登录。
编辑:非常感谢详细的回答!出于某种原因,这在我的服务器上不起作用:
Match User !root
PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)
...但可以很容易地替换为
PasswordAuthentication no
Match User root
PasswordAuthentication yes
Run Code Online (Sandbox Code Playgroud) 我刚刚尝试使用 SSH(PuTTY、Windows)登录Fedora(第 13 版 Goddard)服务器。出于某种原因,Enter输入我的用户名后没有通过,我输入了密码并再次按 Enter 键。当服务员热情地迎接我时,我才意识到我的错误
myusername MYPASSWORD @server.example.com 的密码:
此时我断开了连接并更改了该机器上的密码(通过单独的 SSH 连接)。
...现在我的问题是:这种失败的登录是否以纯文本形式存储在任何日志文件中?换句话说,我是否只是在远程管理员下次扫描他的日志时将我的(现在已经过时的)密码强加给他?
更新
感谢您对隐含问题“将来如何防止这种情况发生”的所有评论。为了快速、一次性的连接,我现在将使用这个 PuTTY 功能:

替换原来的“自动登录用户名”选项

我还将开始更频繁地使用 ssh 密钥,如PuTTY 文档中所述。
我试图ssh在登录时自动更改到特定目录。我尝试使用以下指令使该行为正常工作~/.ssh/config:
Host example.net
LocalCommand "cd web"
Run Code Online (Sandbox Code Playgroud)
但是每当我登录时,我都会看到以下内容:
/bin/bash: cd web: No such file or directory
Run Code Online (Sandbox Code Playgroud)
尽管web我的主目录中肯定有一个文件夹。即使使用绝对路径也会给出相同的消息。需要明确的是,如果我cd web在登录后输入,我会进入正确的文件夹。
我在这里缺少什么?
编辑:
引号/绝对路径的不同组合给出不同的错误信息:
LocalCommand "cd web"
/bin/bash: cd web: No such file or directory
LocalCommand cd web
/bin/bash: line 0: cd: web: No such file or directory
LocalCommand cd /home/gareth/web
/bin/bash: line 0: cd: /home/gareth/web: Input/output error
Run Code Online (Sandbox Code Playgroud)
这让我认为引号不应该在那里,并且发生了另一个错误。
我需要做的就是以特定用户身份运行特定脚本,该用户nologin/false在/etc/passwd.
我会以 root 身份运行脚本,这应该以另一个用户身份运行。跑步:
~# su -c "/bin/touch /tmp/test" testuser
Run Code Online (Sandbox Code Playgroud)
会工作,但我需要一个有效的测试用户外壳。我知道我可以禁用密码passwd -d testuser并将外壳保留为/bin/bash这种方式会安全一点,但我需要有nologin/false外壳。
基本上我需要的是crontab当我们将作业设置为以特定用户身份运行时会做什么,而不管这个用户是否有nologin/falseshell。
ps 我发现这个线程Executing a command as a nologin user,但我不知道如何concatenate将命令su -s /bin/sh $user发送到我需要运行的脚本。
您如何允许用户使用“ su - user ”登录但阻止用户使用 SSH 登录?
我试图将外壳设置为/bin/false但是当我尝试su它时不起作用。
有几种方法只允许登录su?
SSH 是AllowUser要走的路吗?(如果这是要走的路,我会怎么做)
因此,假设有人在其中输入了一些内容以.bashrc阻止他(或她)通过 viassh登录(即 ssh 登录因文件中的错误而退出)。有没有什么方法可以让这个人在不执行它的情况下登录(或者.bashrc因为一个运行另一个),或者以其他方式删除/重命名/使文件无效?
假设您没有对机器的物理访问权限,并且这是唯一可以通过 ssh 进入的用户帐户。
供参考:.bash_profile包括.bashrc:
[[ -f ~/.bashrc ]] && . ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
编辑:我尝试过的事情:
ssh user@host "rm ~/.bashrc"
scp nothing user@host:/RAID/home/tom/.bashrc
ssh user@host "/bin/bash --norc"
Run Code Online (Sandbox Code Playgroud)
都给出错误:
/RAID/home/tom/.bashrc: line 16: /usr/local/bin/file: No such file or directory
/RAID/home/tom/.bashrc: line 16: exec: /usr/local/bin/file: cannot execute: No such file or directory
Run Code Online (Sandbox Code Playgroud) 我的网站托管有一个 VPS。它正在运行 Ubuntu 服务器。每次我通过 ssh 登录我的服务器时,它都会在我的终端中显示一条冗长的欢迎消息。
Linux node61.buyvm.net 2.6.18-pony6-3 #1 SMP Tue Mar 13 07:31:44 PDT 2012 x86_64
Debian GNU/Linux 系统中包含的程序是免费软件;每个程序的确切分发条款在 /usr/share/doc/*/copyright 中的各个文件中进行了描述。
在适用法律允许的范围内,Debian GNU/Linux 不附带任何保证。上次登录:2012 年 7 月 11 日星期三 12:08:19 来自 113.72.193.52 Linux node61.buyvm.net 2.6.18-pony6-3 #1 SMP Tue Mar 13 07:31:44 PDT 2012 x86_64
Debian GNU/Linux 系统中包含的程序是免费软件;每个程序的确切分发条款在 /usr/share/doc/*/copyright 中的各个文件中进行了描述。
在适用法律允许的范围内,Debian GNU/Linux 不附带任何保证。进入 CT 17323 -bash-4.2#
在对此做了一些研究之后(是的,我只是在谷歌搜索),我意识到我的服务器应该有一个.bashrc和.bash_profile(或.profile)控制这个。我使用 vim 打开我的.bashrc和.profile我似乎找不到任何可以在我的终端中显示消息的代码行。因此我想知道是否有另一个文件?
我想注释掉那些欢迎消息,因为我的 SFTP 没有出现错误 ( Received message too long 761422195)。我很确定这个错误是由我的服务器的欢迎消息引起的。
我经常听到有人建议将用户帐户设置为/bin/false. 但是,在我现有的 Linux 系统上,我看到大量现有帐户(所有这些帐户都是服务帐户)都有一个 shell /sbin/nologin。
我从手册页看到/sbin/nologin向用户打印一条消息,说该帐户已被禁用,然后退出。大概/bin/false不会打印任何东西。
我还看到 中/sbin/nologin列出了/etc/shells,而未列出/bin/false。
手册页说 FTP 将禁止使用未列出的 shell 的用户访问,/etc/shells并暗示其他程序可能会这样做。这是否意味着有人可以使用具有/sbin/nologin外壳的帐户进行 FTP登录?
这里有什么区别?我应该使用其中的哪一个来禁用用户帐户,在什么情况下?上市/etc/shells还有什么其他影响?
是的,我可以启动虚拟机或远程设备并尝试输入密码……我知道……但是有没有一种工具或脚本可以模拟登录,足以确认或否认密码正确?
设想:
服务器服务帐户的密码被“忘记”...但我们认为我们知道它是什么。我想将凭据传递给某些东西,并让它以“正确的密码”或“不正确的密码”反击。
我什至想过一个驱动器映射脚本,其中传递了该用户帐户和密码,以查看它是否成功映射了驱动器,但在使其正常工作的逻辑中迷失了......类似于:
-Script 通过 msgbox 请求用户名 -script 通过 msgbox 请求密码 -script 尝试将驱动器映射到每个人都可以访问的公共共享 -script 如果成功则取消映射驱动器 -script 返回弹出 msgbox 说明“正确密码”或“不正确”密码”
任何帮助表示赞赏......你会认为这将是一种罕见的情况,不需要工具来支持它但是......好吧......