权限被拒绝 - 仅当以“root”身份成功连接外部时

权限被拒绝 - 仅当以“root”身份成功连接外部时

因此,在使用 Ubuntu Desktop 13.10 大约几个月后,过去几周我一直在使用 Ubuntu Server 12.04.01,发现从 Windows 环境类型切换后,它是一个令人耳目一新的开始。

一切都很好,除了一件事,我已经排除了一段时间的故障,并且尽我所能,却无法弄清楚。

我在 Ubuntu 服务器上安装了 open-ssh,并且能够使用 Windows 的客户端 putty 程序在端口 22(默认)上通过 SSH 成功连接到它。我所做的唯一更改是位于目录sshd_config中的服务器上的文件/etc/ssh/。配置信息也与其他信息一起列出(如果我可以提供任何其他可能有帮助的信息,请告诉我)。

安装的 SSH 版本:

root@juggernaut:~# dpkg -l | grep "ssh"
ii  openssh-client                     1:5.9p1-5ubuntu1.3         secure shell (SSH) client, for secure access to remote machines
ii  openssh-server                     1:5.9p1-5ubuntu1.3         secure shell (SSH) server, for secure access from remote machines
ii  ssh-import-id                      2.10-0ubuntu1              securely retrieve an SSH public key and install it locally

权限/

root@juggernaut:~# ls -lah /
total 84K
drwxr-xr-x 22 root root 4.0K Jan  2 06:49 .
drwxr-xr-x 22 root root 4.0K Jan  2 06:49 ..
drwxr-xr-x  2 root root 4.0K Jan  2 06:45 bin
drwxr-xr-x  3 root root 4.0K Jan  2 06:52 boot
drwxr-xr-x 14 root root 4.0K Jan  2 13:44 dev
drwxr-xr-x 88 root root 4.0K Jan  3 18:25 etc
drwxr-xr-x  3 root root 4.0K Jan  1 17:59 home
lrwxrwxrwx  1 root root   37 Jan  2 06:49 initrd.img -> /boot/initrd.img-3.2.0-74-generic-pae
lrwxrwxrwx  1 root root   37 Jan  1 15:08 initrd.img.old -> /boot/initrd.img-3.2.0-29-generic-pae
drwxr-xr-x 18 root root 4.0K Jan  2 06:44 lib
drwx------  2 root root  16K Jan  1 15:03 lost+found
drwxr-xr-x  3 root root 4.0K Jan  1 15:07 media
drwxr-xr-x  2 root root 4.0K Aug  3  2012 mnt
drwxr-xr-x  2 root root 4.0K Jan  1 15:04 opt
dr-xr-xr-x 80 root root    0 Jan  2 13:44 proc
drwx------  4 root root 4.0K Jan  3 18:25 root
drwxr-xr-x 15 root root  540 Jan  3 18:25 run
drwxr-xr-x  2 root root 4.0K Jan  2 06:48 sbin
drwxr-xr-x  2 root root 4.0K Mar  5  2012 selinux
drwxr-xr-x  2 root root 4.0K Jan  1 15:04 srv
drwxr-xr-x 13 root root    0 Jan  2 13:44 sys
drwxrwxrwt  3 root root 4.0K Jan  3 18:17 tmp
drwxr-xr-x 10 root root 4.0K Jan  1 15:04 usr
drwxr-xr-x 12 root root 4.0K Jan  2 13:43 var
lrwxrwxrwx  1 root root   33 Jan  2 06:49 vmlinuz -> boot/vmlinuz-3.2.0-74-generic-pae
lrwxrwxrwx  1 root root   33 Jan  1 15:08 vmlinuz.old -> boot/vmlinuz-3.2.0-29-generic-pae    

但是,当我在 LAN(内部网络)内以 root 身份成功连接到我的服务器时,我可以通过 ssh 完全访问我的服务器内的每个位置,就像我连接到服务器控制台本身一样。

但是,当我通过公共 IP/网络的主机名通过 SSH 外部连接到服务器时,我只得到一个

$

成功以 root 身份登录后,系统会提示 — 没有横幅、motd,没有其他内容,就像我通过 LAN 连接到服务器时一样。话虽如此,我可以浏览几乎所有位置和内容,但当我“cd”到“/etc”目录时,我收到以下消息:

ls: can’t open ‘.’: Permission denied

我已经花了足够的时间在网上搜索,但还是不知道运气如何。希望我遗漏了一些小设置。

答案1

  1. 通过 SSH 建立远程连接(从外部源)。
  2. 成功登录后root,执行ifconfig命令。
    • 立即注意到该 IP 地址实际上是我的网关路由器的 LAN IP 地址。
  3. 下一步是禁用我认为设置正确的端口转发。
  4. 我尝试通过 SSH 再次重新连接(从外部源)——并且,我仍然能够连接。
  5. 再次执行了此列表的第 2 步,信息相同!(现在我有点明白了——谢谢 克里斯·纳瓦
  6. 现在,我禁用网关路由器的 SSH(我之前已经设置过它,但忘记它已启用)。
  7. 我再次尝试通过 SSH 重新连接(从外部源)——我收到超时通知。
  8. 到目前为止一切顺利 - 我重新启用了到 SSH 服务器的端口转发,然后 BAM!所有问题都解决了。

好吧,这表明,如果你不使用它,就禁用它!我学到了惨痛的教训。

相关内容