我已经配置了我的 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
/更改sshd
为ssh2
/sshd2
并重命名env SSH_SIGSTOP=1
为env 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_config
为SSHD_OPTS=
/etc/default/ssh2
- 设置
exec /usr/sbin/sshd2 -D
为exec /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