为什么sshd守护进程会失败手动启动/ usr / sbin / sshd允许的连接?

目标是build立FreeNX。 在另一个serverfault用户的build议之后,我能够testingsshnxsetup连接到sshd服务器的各种configuration,作为守护进程或手动启动的/usr/sbin/sshd实例。

守护进程版本不会接受来自nxsetup的连接,而是手动实例/usr/sbin/sshd

步骤:

  1. 启动ssh-agent eval $(ssh-agent)并添加根密钥ssh-add

  2. 停止sshd守护进程,

  3. 用以下方式启动手动实例:

     # /usr/sbin/sshd -d -p 22 -f /path/to/test/sshd_config_nx 
  4. 我遇到的命令是:

     # nxsetup --install --clean --purge 
  5. 成功! 但是,跳过2,3,连接失败

sshd守护进程和手动/ usr / sbin / sshdconfiguration文件的设置:

/etc/ssh/sshd_config当然是守护进程的默认configuration目录。 这个文件和我的testingconfiguration~/sshd_config_nx (已成为)完全相同(diff)。

成功的sshtesting包括:

 from client over LAN to: - sshd server daemon - manual sshd server from ssh with loopback (127.0.0.1) to: - sshd server daemon - manual sshd server 

权限

我读了很多关于涉及权限的ssh / sshdauthentication问题的文章。 我的root用户具有以下权限: /root/.ssh为700,/root/.ssh/*为600. authorized_keys2的nxserver默认位置为/var/lib/nxserver/home/.ssh/ 。 我在这里应用了相同的权限。 / root和/ var之间的唯一区别是后者是拥有的nx:root。 基于这个原因,我testing了所有者和组的权限相同,世界仍然是0.这没有任何区别,它窃听了ssh-add。 所以我把它们改回到700和600.我还没有听说configuration权限很重要,但是我使它们都是相同的,因为我以root身份执行这些命令,所以用户:grooup也是一样的。

为什么sshd守护进程会失败手动启动/ usr / sbin / sshd允许的连接?

/ /编辑 :我已经尝试了更多的事情,我只是愚蠢的事件:

  • 在步骤中添加ssh-agent。

  • 我确定我对~/.ssh/var/lib/nxserver/home/.ssh权限所做的任何更改都是遵循另一个post的build议, 而 #restorecon -r -vv /root/.ssh与守护进程有类似的问题, 并且手动启动了sshd : #restorecon -r -vv /root/.ssh

  • 服务器有openssh-5.3p1-84.1.el6.i686,因此authorized_key文件不是你所期望的。 FreeNX想要位于/ var目录中的authorized_keys2。 其中重要的是要注意,ssh正在工作。 testingsshd_config_nx总是使用这个/ var位置,并且当我通过守护进程尝试nxsetup连接(以适应nxsetup指令)时,我切换/ etc / ssh / sshd_config中的行。

  • 添加了/ etc / ssh / sshd_config的 pastebin

  • 上面提到的目录:

     [root@mrwizard ~]# ls ~/.ssh drwx------. 2 root root 4096 Oct 6 17:47 . dr-xr-x---. 47 root root 4096 Oct 7 18:58 .. -rw-------. 1 root root 2761 Oct 5 18:50 authorized_keys -rw-------. 1 root root 1865 Oct 6 15:54 authorized_keys2 -rw-------. 1 root root 1679 Oct 6 15:52 authorized_keys2.new -rw-------. 1 root root 1743 Oct 5 18:38 id_rsa -rw-------. 1 root root 401 Oct 5 18:38 id_rsa.pub -rw-------. 1 root root 391 Oct 6 17:47 known_hosts [root@mrwizard ~]# ls -al /var/lib/nxserver/home/.ssh/ drwx------. 2 nx root 4096 Oct 7 18:38 . drwx------. 5 nx root 4096 Oct 7 18:38 .. -rw-------. 1 nx root 669 Oct 7 18:38 authorized_keys2 -rw-------. 1 nx root 668 Oct 7 18:38 client.id_dsa.key -rw-r--r--. 1 nx root 392 Oct 7 18:38 known_hosts [root@mrwizard ~]# ls -al /etc/ssh/ drwxr-xr-x. 2 root root 4096 Oct 6 18:47 . drwxr-xr-x. 135 root root 12288 Oct 7 18:38 .. -rw-------. 1 root root 125811 Feb 21 2013 moduli -rw-r--r--. 1 root root 2061 Sep 22 14:32 ssh_config -rw-------. 1 root root 4492 Oct 6 18:47 sshd_config -rw-------. 1 root root 668 Oct 5 16:53 ssh_host_dsa_key -rw-r--r--. 1 root root 590 Oct 5 16:53 ssh_host_dsa_key.pub -rw-------. 1 root root 963 Oct 5 16:53 ssh_host_key -rw-r--r--. 1 root root 627 Oct 5 16:53 ssh_host_key.pub -rw-------. 1 root root 1671 Oct 5 16:53 ssh_host_rsa_key -rw-r--r--. 1 root root 382 Oct 5 16:53 ssh_host_rsa_key.pub 

你已经启用了selinux 。 对于失败的连接,您应该在/var/log/audit/audit.log看到条目。 你有两个select:

  • 禁用selinux 。 来吧,所有的朋友都在这样做。
  • 修复你的selinuxconfiguration。 这可能就像运行具有适当参数来重新标记文件系统的fixfiles一样简单,或者可能需要明确设置文件或目录的selinux上下文。

如果您select第二个问题 – 可以说是更正确的,但是更劳动密集的解决scheme,那么您可能需要在audit.log打开第二个包含相关条目的问题。

您可以通过运行来尝试第一个解决scheme:

 # setenforce 0 

这将使selinux进入许可模式,但在重新启动时不会持续。 要坚持禁用selinux ,请编辑/etc/selinux/config并设置:

 SELINUX=disabled 

要么:

 SELINUX=permissive 

后者的设置将使selinux启用,但处于宽容模式,所以它会将违规logging到audit.log但不会