如何为 ssh 设置没有登录 shell 的 Ubuntu 备份用户?

如何为 ssh 设置没有登录 shell 的 Ubuntu 备份用户?

我正在设置 Amanda 来备份一个小型的 Ubuntu 16.04 服务器和桌面网络。假设 U1 是备份服务器,U2 是客户端。每个服务器都有一个名为“backup”的帐户,没有登录 shell 或密码(在 Ubuntu 中默认创建)。我想使用密钥而不是密码backup@U1进行 SSH 连接backup@U2。据我所知,如果备份没有登录名或密码,但只能通过 ssh 密钥访问,则更安全。

我已经生成了 SSH 密钥,并将 U1 的公钥复制到 U2 的备份主目录/var/backups/.ssh/authorized_keys(以备份为所有者)。我还将 U2 的主机密钥复制到 U1 /var/backups/.ssh/known_hosts。当我尝试从 U1 ssh 到 U2 时

sudo -u backup ssh -i /etc/amanda/MyConfig/ssh-key U2.example.com

我明白了

This account is currently not available.

我可以从 U1 上的我的帐户 ssh 到 U2 上的另一个帐户,所以我知道两台机器之间的 ssh 是有效的。从消息中,我猜想备份帐户缺少密码/登录名是问题所在。我该如何安全地进行设置,以便 Amanda 可以 ssh 到客户端来备份网络?

答案1

创建用户、锁定账户、添加 SSH 密钥,一切就完成了。如果您锁定账户密码,SSH 密钥仍将有效。

您至少需要在远程系统上有一个用户名才能允许登录。但这并不意味着用户应该有密码访问权限。因此,如果您想这样做,我们假设您的备用用户名是backup;请注意,这是一个糟糕的用户名​​,因为它太常见了,所以想出一些适合您的 8 个字母组合。无论如何,像这样创建用户:

sudo adduser backup

好的,现在只需回答您在运行时通常会遇到的一系列问题,adduser包括设置密码。

然后,当创建该用户时,只需执行以下操作即可锁定帐户:

sudo passwd -l backup

现在,如果您在该用户帐户下设置 SSH 密钥,您将能够通过 SSH 登录,但不能通过密码登录。

相关内容