目标是设置 FreeNX。按照另一个人的建议serverfault 用户我能够测试sshd 服务器作为守护进程或手动启动的实例的各种配置ssh
和连接。 nxsetup
/usr/sbin/sshd
守护进程版本将不会接受来自 nxsetup 的连接,但手动实例/usr/sbin/sshd
会接受。
步骤:
启动 ssh-agent
eval $(ssh-agent)
并添加根密钥ssh-add
停止 sshd 守护进程,
使用以下命令启动手动实例:
# /usr/sbin/sshd -d -p 22 -f /path/to/test/sshd_config_nx
我遇到问题的命令是:
# nxsetup --install --clean --purge
成功!但是,跳过 2、3 则连接失败
sshd 守护进程的设置和手动 /usr/sbin/sshd 配置文件:
/etc/ssh/sshd_config
当然是守护进程的默认配置目录。此文件和我的测试配置~/sshd_config_nx
(已变为)完全相同(不同)。
成功的 ssh 测试包括:
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/sshd 身份验证问题的帖子。我的 root 用户具有以下权限:/root/.ssh
是 700 和/root/.ssh/*
是 600。authorized_keys2 的 nxserver 默认位置是/var/lib/nxserver/home/.ssh/
。我在这里应用了相同的权限。/root 和 /var 之间的唯一区别是后者归 nx:root 所有。出于这个原因,我测试了所有者和组的权限相同,world 仍然是 0。这没有任何区别,而且它使 ssh-add 出现问题。所以我将它们改回 700 和 600。我没有听说配置权限很重要,但我将它们设置为相同,并且由于我以 root 身份执行这些命令,因此 user:grooup 也相同。
为什么 sshd 守护进程会导致手动启动 /usr/sbin/sshd 允许的连接失败?
//编辑:如果我太愚蠢的话,我还尝试了其他一些方法:
按步骤添加 ssh-agent。
我确保我所做的任何更改
~/.ssh
和/var/lib/nxserver/home/.ssh
权限都遵循了另一篇有类似问题的帖子的建议守护进程并手动启动 sshd:#restorecon -r -vv /root/.ssh
服务器有 openssh-5.3p1-84.1.el6.i686,因此 authorized_key 文件可能不是您所期望的。FreeNX 希望将 authorized_keys2 放在 /var 目录中。这里需要注意的是 ssh 正在运行。测试 sshd_config_nx 始终使用此 /var 位置,当我尝试通过守护进程进行 nxsetup 连接时,我会切换 /etc/ssh/sshd_config 中的行(以符合 nxsetup 说明)。
添加 pastebin/etc/ssh/sshd_config
上面提到的目录:
[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
答案1
您已selinux
启用。对于失败的连接,您应该在 中看到条目/var/log/audit/audit.log
。您有两个选择:
- 禁用
selinux
。继续吧,你所有的朋友都在这么做。 - 修复您的
selinux
配置。这可能很简单,只需fixfiles
使用适当的参数运行即可重新标记您的文件系统,或者可能需要明确设置selinux
文件或目录的上下文。
如果您选择第二种解决方案(可能更正确,但更费力),您可能需要打开第二个问题,其中包含来自您的相关条目audit.log
。
您可以通过运行以下命令尝试第一个解决方案:
# setenforce 0
这将进入selinux
宽容模式,但重启后不会持久。要永久禁用selinux
,请编辑/etc/selinux/config
并设置:
SELINUX=disabled
或者:
SELINUX=permissive
后一种设置将保持selinux
启用状态,但处于宽容模式,因此它将记录违规行为,audit.log
但不会