在 Ubuntu Server 上创建新的 SSH 用户

在 Ubuntu Server 上创建新的 SSH 用户

刚刚创建了一个新的虚拟 Ubuntu 服务器,我正在强化它以供生产使用。我目前有一个 root 帐户。我想执行以下操作:

  • 创建一个新用户(接下来我们叫他们jim这个名字)。我希望他们有一个/home/目录。
  • 授予jimSSH 访问权限。
  • 允许jimrootsu但不执行sudo操作。
  • 关闭 root SSH 访问。
  • 将 SSHd 移至非标准端口以帮助阻止暴力攻击。

我的问题在于前两项。我已经找到了,useradd但出于某种原因,我无法通过 SSH 以用它创建的用户身份登录。我需要击败 SSHd 来允许这一点吗?

答案1

SSH 对目录和文件权限非常挑剔。请确保:

  1. 目录 /home/username/.ssh 具有权限“700”,并由用户拥有(不是 root!)
  2. /home/username/ssh/authorized_keys 具有权限“600”,并归用户所有

将您的公钥复制到authorized_keys文件中。

sudo chown -R username:username /home/username/.ssh
sudo chmod 0700 /home/username/.ssh
sudo chmod 0600 /home/username/.ssh/authorized_keys

需要将用户添加到/etc/ssh/ssh_config。

答案2

编辑 (以 root 身份) /etc/ssh/sshd_config。将以下内容附加到其中:

Port 1234
PermitRootLogin no
AllowUsers jim

Port 1234使 SSH 监听端口 1234。您可以使用 1 到 65535 之间的任何未使用端口。建议选择只有 root 才能使用的特权端口(端口 1-1024)。如果您的 SSH 守护程序因某种原因停止工作,恶意应用程序将无法拦截连接。

PermitRootLogin不允许直接 root 登录。

AllowUsers jim允许用户jim通过 SSH 登录。如果您不必从任何地方登录,则可以通过将 jim 限制到 IP 地址(将 1.2.3.4 替换为您的实际 IP 地址)来提高安全性:

AllowUsers [email protected]

对配置文件的更改/etc/ssh/sshd_config不会立即应用,要重新加载配置,请运行:

sudo service ssh reload

答案3

/var/log/auth.logSSH(或 PAM)拒绝登录尝试的原因将得到线索。使用-v带有远程控制客户端。有几种常见情况,其他答案中提到过一些:

  • 用户帐户没有密码或已被禁用(请参阅man passwd,尝试重置密码或检查 的内容/etc/shadow)。
  • /etc/ssh/sshd_config配置为不允许登录(、、、DenyUsers等,请参阅)。AllowUsersPasswordAuthenticationPubkeyAuthenticationUsePAMman sshd_config
  • 用户的 shell 未在 中列出/etc/shells
  • 与 SSH 操作相关的目录或文件的各种权限问题:、、、/etc/ssh等等。/home/jim/.ssh/home/jim/.ssh/*

我还建议使用添加用户(代替用户添加) 添加新用户;对于各种默认账户设置更友好一些。

只要用户不属于该admin群组,他们就无法须藤根。对于他们使用之后,您需要设置一个 root 密码 ( passwd root),之后我建议PermitRootLogin=no在 中设置/etc/ssh/sshd_config

答案4

除非您设置了密码,否则 Jim 将无法访问 SSH。以 root 身份执行:

grep -i "jim" /etc/shadow | awk -F':' '{ print $2 }'

如果此命令返回“!”字符,则表示此帐户的登录被禁用。passwd jim以 root 身份执行将提示您输入新的和确认的密码字符串,之后上述 grep 命令应返回代表 jim 密码的散列字符串。

还要确保验证 jim 具有默认设置的登录 shell 和存在的主目录。

请注意 lekensteyn 的帖子以获取有关修改 SSH 服务器设置的信息。

相关内容