我在 ubuntu 10 上创建了一个新用户,用户名:codeuser
有一个名为“admin”的现有用户。现在,我的问题是我无法使用 codeuser 凭据直接连接到服务器。但是,我可以通过“admin”通过 SSH 进入,然后 su(将用户更改为 codeuser),这样就可以了。如何获取 codeuser 用户的 shell 访问权限?
这是我的文件的输出:
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
www-data:x:33:33:www-data:/var/www:/bin/bash
admin:x:1000:1000:,,,:/home/admin:/bin/bash
ftp:x:107:65534::/home/ftp:/bin/false
codeuser:x:1004:33::/home/codeuser:/bin/bash
cat /etc/group
root:x:0:
www-data:x:33:
codeuser:x:1005:
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
答案1
检查 /etc/ssh/sshd_config 以获取允许的用户列表。如果没问题,则问题更加复杂。尝试以“ssh codeuser@your-server -v”的身份进行连接
答案2
在 Ubuntu 18.04 上,我只是忘记将客户端的公钥添加到授权密钥文件中(这篇文章让我开始思考 authorized_keys 文件:https://superuser.com/a/1337741/413936)。
chmod 700 ~/.ssh
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
然后将您的客户端的公钥添加到authorized_keys
文件中。
但无论出于什么原因,我都不需要PasswordAuthentication yes
像其他人提到的那样在 Ubuntu 18.04.3 LTS 上添加 /etc/ssh/sshd_config。需要说明的是,我的配置文件被注释掉了# PubkeyAuthentication yes
,我重新启动了 ssh 和 sshd 服务,仍然能够 ssh 进入。
答案3
创建新用户后偶然发现此线程,无法通过 SSH 连接到新用户。我设法在查找 .ssh 文件夹和 authorized_keys 文件的组和用户后修复了这个问题。它们被设置为 root:root,因为我使用 sudo 从其他用户的文件夹中复制了它们。
所以我用以下方法修复它:
sudo chown new_user:new_user /home/new_user/.ssh/
sudo chown new_user:new_user /home/new_user/.ssh/authorized_keys
希望这可以帮助
答案4
尝试检查 /var/log/auth.log 以查找可能的错误消息。
另外,要求用户尝试使用 ssh -v 登录,以获得更详细的输出。
希望这可以帮助!