我不是系统管理员\网络专家(我是软件开发人员),并且在客户的 Linux CentOS 7 远程机器上工作时发现以下困难。
我正在使用 MobaxTerm 连接到这台机器。他们给我提供了一个.ppk 文件和一个用户。
.ppk 文件包含如下内容:
PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: MY CUSTOMER KeyPair
Public-Lines: 6
.....................................................................
.....................................................................
.....................................................................
导入此文件(进入 MobaxTerm“高级 SSH 设置 --> 使用私钥”)我可以使用他们给我的用户毫无问题地登录这台机器。
然后,在我以提供的用户身份登录后,我使用以下命令创建了一个全新的 root 用户:
sudo adduser my_new_user
sudo passwd my_new_user
sudo usermod -aG wheel my_new_user
完成此操作后,我可以通过以下方式更改用户:
su - my_new_user
它运行正常,而且似乎我有 root 访问权限。
问题是现在我无法使用此 my_new_user 用户通过 SSH 进行访问。如果我在执行登录时尝试提示此用户名,则会收到以下错误消息:
Server refused our key
No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)
我认为这个错误取决于导入的.ppk 文件与提供的用户相关而不是与这个全新的用户相关(事实上,如果我禁用.ppk 导入,使用原始提供的用户也会得到同样的错误)。
在网上看了一下,好像是同一个key可以访问多个用户/主机,但是需要对每个用户分别授权。所以我尝试做了如下操作:
在我的新用户目录中,我手动创建了.ssh目录:
[anobili@prod-whazu-nodo1 ~]$ pwd
/home/anobili
[anobili@prod-whazu-nodo1 ~]$ ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .ssh
[anobili@prod-whazu-nodo1 ~]$
然后我复制了/home/originaluser/.ssh/authorized_keys文件(其中 originaluser 是他们向我提供的用户)放入全新的.ssh文件夹。它现在包含这个授权密钥包含密钥的文件:
[anobili@prod-whazu-nodo1 .ssh]$ pwd
/home/anobili/.ssh
[anobili@prod-whazu-nodo1 .ssh]$ ls -a
. .. authorized_keys
[anobili@prod-whazu-nodo1 .ssh]$
现在我希望我也可以通过 SSH 以同样的方式登录阿诺比利用户,但我仍然收到之前的错误消息。
哪里出了问题?我遗漏了什么?我该如何修复此问题?
答案1
首先:使用ls -lhAZ
(-Z
在启用 SELinux 的系统上),它显示 Linux 文件所有权、权限和 SELinux 标签。
重置目录和文件的权限:
# DAC - Restore permissions
chmod 0700 ~anobili/.ssh
chmod 0600 ~anobili/.ssh/authorized_keys
# Restore ownership
chown -R anobili ~anobili/.ssh
# MAC - Restore SELinux
restorecon -R ~anobili/.ssh
它看起来应该是这样的:
$ ls -lhaZ | grep .ssh
drwx------. 2 user group unconfined_u:object_r:ssh_home_t:s0 4.0K Feb 21 18:52 .ssh
$ ls -lhaZ .ssh
-rw-------. 1 user group unconfined_u:object_r:ssh_home_t:s0 0 Feb 21 18:53 authorized_keys