如何为在 CentOS 7 机器上创建的这个新用户启用 SSH 登录?

如何为在 CentOS 7 机器上创建的这个新用户启用 SSH 登录?

我不是系统管理员(我是软件开发人员),我发现在 Linux 上工作有以下困难CentOS 7客户的远程机器。

我正在使用 MobaxTerm 连接到这台机器。他们为我提供了一个.ppk文件和用户。

.ppk文件包含如下内容:

PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: MY CUSTOMER KeyPair
Public-Lines: 6
.....................................................................
.....................................................................
.....................................................................

导入此文件后,我可以使用他们给我的用户顺利登录到这台机器。

然后,在我以提供的用户身份登录后,我使用以下命令创建了一个全新的 root 用户:

sudo adduser my_new_user
sudo passwd my_new_user
sudo usermod -aG wheel my_new_user

完成此操作后,我可以通过以下方式更改用户:

su - my_new_user

它运行正常,而且似乎我有 root 访问权限。

问题是现在我无法使用此命令通过 SSH 访问我的新用户用户。如果我在执行登录时尝试提示此用户名,则会收到以下错误消息:

Server refused our key

No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)

我认为这个错误取决于导入的.ppk文件与提供的用户相关,而不是与这个全新的用户相关(事实上,如果我禁用.ppk导入我也使用原始提供的用户获得同样的错误)。我想也许我必须生成一个新的.ppk文件也适用于这个新用户。我的推理正确吗?万一生成此文件并有机会使用我的新用户登录的正确程序是什么?

答案1

SSH 密钥确实是用户特定的,尽管用户分配是在服务器上完成的,而不是密钥本身的属性。同一个密钥可用于访问多个用户/主机,但需要为每个用户单独授权。

在 Linux 上,允许的密钥列表存储在~/.ssh/authorized_keys每个用户主目录中的文件中。它包含以下列表:民众密钥(OpenSSH 格式),每行一个密钥。

在 PuTTYgen 中加载您的 .ppk 文件(甚至生成新密钥)将直接以 OpenSSH 格式显示其公钥,您可以将其复制到新用户帐户的“authorized_keys”文件中。

(如果您使用“nano”编辑文件,请确保禁用其换行功能。)


此外,请确保您的顾客实际上允许您在他们的服务器上创建新帐户,因为这通常是系统管理员的责任,而不是软件开发人员的责任。

答案2

在您的本地机器上,复制您的公共 ssh 密钥:

$ cat ~/.ssh/your_rsa.pub  # Copy the output

请参阅第四步 - 添加公钥认证关于如何生成您的公共 ssh 密钥。


然后,在远程服务器上以 root 用户身份执行:

$ su - my_new_user
$ mkdir .ssh
$ chmod 700 .ssh
$ vi .ssh/authorized_keys # press `i` and paste the public key here, save and exit by `:wq`.
$ chmod 600 .ssh/authorized_keys

回到root用户:

$ exit  

现在您可以注销远程服务器并使用新的用户帐户重新登录。


有关详细信息,请参阅此处的参考文档:使用 CentOS 7 进行初始服务器设置

相关内容