升级到 Xenial Xerus 后第二个 ssh 实例无法启动 - 权限被拒绝

升级到 Xenial Xerus 后第二个 ssh 实例无法启动 - 权限被拒绝

我已经配置了我的 ssh 服务器的第二个实例。“ssh”将监听端口 22,但只允许私钥/公钥登录(通过 phabricator)。“ssh2”将使用默认 sshd_config 选项监听端口 266。

这在 Trusty Tahr 上运行良好,但自从我升级到 Xenial 后,“ssh2”就无法启动了。它说

/etc/init.d/ssh2: 5: /etc/default/ssh2: /etc/ssh2/sshd_config: Permission denied

设置端口 266:

/etc/ssh

sudo cp -r /etc/ssh /etc/ssh2

改变在/etc/ssh2/sshd_config

Port 266
HostKey /etc/ssh2/ssh_host_rsa_key
HostKey /etc/ssh2/ssh_host_dsa_key
HostKey /etc/ssh2/ssh_host_ecdsa_key
HostKey /etc/ssh2/ssh_host_ed25519_key
PidFile /var/run/sshd2.pid

/etc/default/ssh

sudo cp /etc/default/ssh /etc/default/ssh2

并将其内容更改为:

SSHD_OPTS=-f /etc/ssh2/sshd_config

/etc/init/ssh.conf

sudo cp /etc/init/ssh.conf /etc/init/ssh2.conf

我将所有出现的ssh/更改sshdssh2/sshd2并重命名env SSH_SIGSTOP=1env SSH2_SIGSTOP=1

符号链接:

sudo ln -s /usr/sbin/sshd /usr/sbin/sshd2
sudo ln -s /etc/pam.d/sshd /etc/pam.d/sshd2
sudo ln -s /etc/init.d/ssh2 /etc/rc2.d/S03ssh2
sudo ln -s /etc/init.d/ssh2 /etc/rc3.d/S03ssh2
sudo ln -s /etc/init.d/ssh2 /etc/rc4.d/S03ssh2
sudo ln -s /etc/init.d/ssh2 /etc/rc5.d/S03ssh2

/etc/init.d/ssh

sudo cp /etc/init.d/ssh /etc/init.d/ssh2

我将所有出现的“ ssh“/” sshd” 改为“ ssh2“/” sshd2”。

最后我更新了 iptables:

sudo iptables -A INPUT -p tcp --dport 266 -j ACCEPT

现在,如果我想启动服务,ssh2我会收到以下错误:

ssh2.service 的作业失败,因为控制进程以错误代码退出。有关详细信息,请参阅“systemctl status ssh2.service”和“journalctl -xe”。

systemctl 状态 ssh2.服务:

● ssh2.service - LSB:OpenBSD 安全外壳服务器 已加载:已加载(/etc/init.d/ssh2;错误;供应商预设:已启用) 活动:失败(结果:退出代码)自 2016-11-19 星期六 15:53:46 CET;44 秒前 文档:man:systemd-sysv-generator(8) 进程:2046 ExecStart=/etc/init.d/ssh2 start(代码=exited,状态=126)

11 月 19 日 15:53:46 cloud systemd[1]: 正在启动 LSB:OpenBSD 安全 Shell 服务器... 11 月 19 日 15:53:46 cloud systemd[1]: /etc/init.d/ssh2: 5: /etc/default/ssh2: /etc/ssh2/sshd_config: 权限被拒绝 11 月 19 日 15:53:46 cloud systemd[1]: ssh2.service:控制进程已退出,代码=退出状态=126 11 月 19 日 15:53:46 cloud systemd[1]: 无法启动 LSB:OpenBSD 安全 Shell 服务器。 11 月 19 日 15:53:46 cloud systemd[1]: ssh2.service:设备进入失败状态。 11 月 19 日 15:53:46 cloud systemd[1]: ssh2.service:失败,结果为“退出代码”。

journalctl-xe:

正在启动 LSB:OpenBSD 安全 Shell 服务器... 主题:单元 ssh2.service 已开始启动 定义者:systemd 支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel 单元 ssh2.service 已开始启动。11 月 19 日 15:55:57 云 ssh2[2098]:/etc/init.d/ssh2:5:/etc/default/ssh2:/etc/ssh2/sshd_config:权限被拒绝11 月 19 日 15:55:57 cloud systemd[1]: ssh2.service: 控制进程已退出,代码=已退出状态=126 11 月 19 日 15:55:57 cloud systemd[1]: 无法启动 LSB:OpenBSD 安全 Shell 服务器。主题:单元 ssh2.service 已失败 定义者:systemd 支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel 单元 ssh2.service 发生故障。结果为失败。11 月 19 日 15:55:57 cloud systemd[1]: ssh2.service: 单元进入失败状态。11 月 19 日 15:55:57 cloud systemd[1]: ssh2.service: 失败,结果为“退出代码”。

(我从中删除了双破折号journalctl -xe)。

文件权限:

在 /etc/ssh2/ 中:

-rw-r--r--   1 root root 300261 Aug 11 18:24 moduli
-rw-r--r--   1 root root   1756 Aug 11 18:24 ssh_config
-rw-------   1 root root   2556 Nov 17 23:51 sshd_config
-rw-------   1 root root    668 Apr 18  2015 ssh_host_dsa_key
-rw-r--r--   1 root root    600 Apr 18  2015 ssh_host_dsa_key.pub
-rw-------   1 root root    227 Apr 18  2015 ssh_host_ecdsa_key
-rw-r--r--   1 root root    172 Apr 18  2015 ssh_host_ecdsa_key.pub
-rw-------   1 root root    399 Aug 19  2015 ssh_host_ed25519_key
-rw-r--r--   1 root root     92 Aug 19  2015 ssh_host_ed25519_key.pub
-rw-------   1 root root   1675 Apr 18  2015 ssh_host_rsa_key
-rw-r--r--   1 root root    392 Apr 18  2015 ssh_host_rsa_key.pub
-rw-r--r--   1 root root    338 Nov 17 19:02 ssh_import_id

在 /etc/ssh2/ 中:

-rw-r--r--   1 root root 300261 Nov 17 19:32 moduli
-rw-r--r--   1 root root   1756 Nov 17 19:35 ssh_config
-rw-r--r--   1 root root   2562 Nov 19 14:07 sshd_config
-rw-------   1 root root    668 Mar  1  2016 ssh_host_dsa_key
-rw-r--r--   1 root root    600 Mar  1  2016 ssh_host_dsa_key.pub
-rw-------   1 root root    227 Mar  1  2016 ssh_host_ecdsa_key
-rw-r--r--   1 root root    172 Mar  1  2016 ssh_host_ecdsa_key.pub
-rw-------   1 root root    399 Mar  1  2016 ssh_host_ed25519_key
-rw-r--r--   1 root root     92 Mar  1  2016 ssh_host_ed25519_key.pub
-rw-------   1 root root   1675 Mar  1  2016 ssh_host_rsa_key
-rw-r--r--   1 root root    392 Mar  1  2016 ssh_host_rsa_key.pub
-rw-r--r--   1 root root    338 Feb 28  2016 ssh_import_id

/etc/default/(已修剪):

-rw-r--r--   1 root root   156 Nov 19 15:18 ssh
-rw-r--r--   1 root root   157 Feb 29  2016 ssh2

/etc/init.d/(已修剪):

-rwxr-xr-x   1 root root  4077 Nov 18 00:38 ssh
-rwxr-xr-x   1 root root  4121 Nov 18 01:27 ssh2

服务状态:SSH:

ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2016-11-19 15:18:47 CET; 46min ago
 Main PID: 846 (sshd)
   CGroup: /system.slice/ssh.service
           └─846 /usr/sbin/sshd -D -f /etc/ssh/sshd_config

SSH2:

ssh2.service - LSB: OpenBSD Secure Shell server
   Loaded: loaded (/etc/init.d/ssh2; bad; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2016-11-19 15:18:44 CET; 47min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 375 ExecStart=/etc/init.d/ssh2 start (code=exited, status=126)

Nov 19 15:18:44 cloud systemd[1]: Starting LSB: OpenBSD Secure Shell server...
Nov 19 15:18:44 cloud ssh2[375]: /etc/init.d/ssh2: 5: /etc/default/ssh2: /etc/ssh2/sshd_config: Permission denied
Nov 19 15:18:44 cloud systemd[1]: ssh2.service: Control process exited, code=exited status=126
Nov 19 15:18:44 cloud systemd[1]: Failed to start LSB: OpenBSD Secure Shell server2.
Nov 19 15:18:44 cloud systemd[1]: ssh2.service: Unit entered failed state.
Nov 19 15:18:44 cloud systemd[1]: ssh2.service: Failed with result 'exit-code'.

执行以下命令(来自 /etc/initi.d/ssh2)将启动 ssh 服务器,不会出现任何错误。通过“service ssh2 start”启动服务将导致错误!

start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd2.pid --exec /usr/sbin/sshd2 -- -f /etc/ssh2/sshd_config

总结:

  • 服务 ssh 处于活动状态(端口 22,目前使用默认设置)
  • 服务 ssh2 无法启动
  • 在升级到 Xenial 之前,这两项服务都运行正常

我希望有人知道该怎么办。提前谢谢!

更新:添加了该start-stop-daemon行。

答案1

现在两个 ssh 实例都在运行!有什么诀窍吗?

我已完成以下步骤:

  • 设置SSHD_OPTS=-f /etc/ssh2/sshd_configSSHD_OPTS=/etc/default/ssh2
  • 设置exec /usr/sbin/sshd2 -Dexec /usr/sbin/sshd2 -D -f /etc/ssh2/sshd_config/etc/init/ssh2.conf
  • 取消SSHD_OPTS注释/etc/init.d/ssh2
  • 设置/usr/sbin/sshd2 $SSHD_OPTS -t || exit 1/usr/sbin/sshd2 -f /etc/ssh2/sshd_config -t || exit 1/etc/init.d/ssh2
  • 设置if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd2.pid --exec /usr/sbin/sshd2 -- $SSHD_OPTS; then为(if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd2.pid --exec /usr/sbin/sshd2 -- -f /etc/ssh2/sshd_config; then/etc/init.d/ssh2发生 3 次!
  • 重启

重启后,两项服务均已运行。

答案2

您的系统正在使用 systemd,因此您应该使用它。

将当前的 ssh 服务文件从/lib/systemd/system/ssh.service复制到/etc/systemd/system/ssh2.service,根据你的喜好编辑新文件,然后输入命令:sudo systemctl enable ssh2 && sudo systemctl start ssh2

相关内容