没有登录外壳的“系统用户”的无密码SSH

免费软件服务器

今天我学到了很多东西,使用RSA来处理ssh并创建没有密码,没有登录名等的系统用户帐户。我试图做的是创建一个用户,该用户的主目录需要〜/ .ssh /和一个密码。 (初始ssh设置需要)

但是我似乎无法正确设置它。

我知道使用

ssh-keygen
ssh-copy-id user@remotehost

这对于RSA很简单

而且我知道如何创建一个用户说

useradd -r newuser

或者

adduser newuser --system --shell=/bin/false
passwd newuser
passwd -d newuser
  • 最终目标

    是没有外壳程序的用户,或者至少不能从远程计算机登录的用户,但是仍然可以用于ssh切换到另一台计算机并运行命令。这有可能吗?

  • 原因/目标

    的目的是让用户在ups电量不足时通过ssh关闭其他连接的计算机,然后再关闭主计算机。(一次只能有一台计算机可以通过USB连接到UPS来监视统计信息)。

我不希望人们能够使用用户名UPS通过SSH登录,但是我需要ups才能无需密码即可登录到remotehost。

斯蒂芬·哈里斯(Stephen Harris)

将crypt字段设置*!!inin/etc/shadow

例如

# adduser tst  
# passwd -l tst
Locking password for user tst.
passwd: Success
# grep tst /etc/passwd
tst:x:1000:1000::/home/tst:/bin/bash
# grep tst /etc/shadow
tst:!!:17030:0:99999:7:::

此时,由于没有有效的密码,用户无法登录。

现在command="/thing/to/do"authorized_keys文件的公钥开头添加一个

例如

# ls -l $PWD/authorized_keys 
-rw-r--r-- 1 tst tst 431 Aug 17 17:54 /home/tst/.ssh/authorized_keys

# cat $PWD/authorized_keys
command="/bin/echo hello" ssh-rsa AAAAB3NzaC1yc2E....etcetc

现在可以使用此密钥,但是唯一可以使用的是强制命令:

$ ssh -i ~/.ssh/id_rsa tst@test1
hello
Connection to test1 closed.

如果尝试执行其他任何操作,它将失败,并仍然强制执行相同的命令

$ ssh -i ~/.ssh/id_rsa tst@test1 reboot 
hello
$

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

postgres用户可以使用任何密码或没有密码登录

Codeigniter登录系统,带有会话,如果密码正确,可将用户重定向到页面

如何在没有公钥的情况下登录ssh?仅使用用户名和密码

在用户登录期间,身份验证返回无,并带有正确的用户名和密码

如果用户已经具有无密码登录功能,Firebase可以设置密码身份验证吗?

如何在没有密码提示的情况下自动登录到完全加密的Ubuntu系统?

ssh无密码登录无法使用proxycommand

SSH隧道,适用于带PuTTY且没有外壳的受限用户

如果没有登录,用户如何更改密码

如何为所有用户设置无密码的SSH

仅当我已经登录SSH时,无密码SSH才有效

使用SSH私钥登录时没有密码的sudo

带有私钥且无密码的SSH

没有密码的SSH不适用于用户postgres

SSH登录无法使用没有密码的密钥吗?

没有密码的SSH Pub密钥登录

没有用户目录的无密码ssh设置

没有密码的用户可以通过ssh登录吗?

是否可以仅为用户创建ssh密码而没有任何密码?

如何设置无密码的SSH登录?

如何关闭ssh的无密码登录?

SSH为没有外壳的用户使用

如何授予系统上所有用户无密码运行iptables命令的权限

没有密码和ssh密钥登录到SSH?

Jenkins SSH没有密码

登录到没有用户标识的系统

登录系统,输入用户名和密码后登录

以没有密码的用户身份图形登录

没有密码创建的 Firebase 用户仍然可以登录吗?