При использовании старый добрый ssh
вместо autossh
как Вы говорите в своих собственных работах ответа хорошо, это является большим, можно прекратить читать.
Я много раз был в ситуации, что никакой объем настройки конфигурации ssh/sshd не помог бы, время от времени мой испытанный туннель зависнет в противоположность доброжелательному катастрофическому отказу, несмотря ни на что. Во всех тех ситуациях autossh
обработанный как очарование.
Таким образом, если Вы заканчиваете тем, что возвратились к autossh
, вот то, как я использую его. Вместо inittab
, Я выполняю его внутри a screen
сессия. Создайте простой сценарий, давайте назовем его autossh.sh
:
#!/bin/sh
tunnelsite=autossh-host1
if ! screen -ls | grep -F .$tunnelsite >/dev/null; then
screen -d -m -S $tunnelsite autossh -N $tunnelsite
fi
Сценарий просто проверяет, существует ли экранная сессия с именем, уже работающим, выйдите из него да, иначе создайте его.
Запланируйте задание крона для выполнения этого периодически:
*/15 * * * * AUTOSSH_PORT=0 /path/to/autossh.sh
AUTOSSH_PORT=0
только к обходному решению странная проблема, которую я имел на Mac OS X. Можно опустить это, но я использую этот метод в Linux также без проблем.
Наконец, рекомендация по безопасности: если Вы уже не делаете его, я использующий специальный ssh ключ для аутентификации туннеля с autossh и ограничения ключевой авторизации в .ssh/authorized_keys
с этими опциями:
command="/bin/false",no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA...
Таким образом, даже если Ваш ключ когда-нибудь поставлен под угрозу, это только будет применимо для создания туннеля.
На самом деле у меня есть проект сценария на GitHub для создания этой установки легче. https://github.com/janosgyerik/autossh-tunnel
Так как opensuse использует systemd, который можно попробовать systemctl enable sshd
и systemctl start sshd
как базируются или с sudo
Просто введите команды @mavillian
systemctl enable sshd
и systemctl start sshd
в раздел постскриптов
<scripts>
<post-scripts config:type="list">
<script>
<filename>setupssh.sh</filename>
<interpreter>shell</interpreter>
<debug config:type="boolean">true</debug>
<source><![CDATA[
systemctl enable sshd.service
systemctl start sshd.service
]]></source>
</script>
</post-scripts>
</scripts>
a) получите текущую настройку autoyast или убедитесь, что она у вас уже есть, с помощью
cd /root
mv autoinst.xml autoinst.xml.save
yast2 clone_system
b) предполагая, что указанная выше команда перемещения сработала, теперь вы можете выполнить различие какой автояст делал раньше (по умолчанию), а что есть сейчас.
mv autoinst.xml autoinst.xml.old
yast2 firewall
Теперь перейдите в «Разрешенные службы», затем перейдите в «Разрешить службы» и выберите «Сервер Secure Shell», затем «Добавить», затем «Далее»
Если это то, что вы хотите, выберите « Finish ", в противном случае выберите" Back "
Я считаю, что вы хотите увидеть следующее:
Firewall Starting
* Enable firewall automatic starting
* Firewall starts after the configuration gets written
...
Open Services, Ports, and Protocols
+ Secure Shell Server
После Finish
снова запустите yast2 clone_system
Теперь, чтобы увидеть отличия, которые вам нужны:
cp autoinst.xml autoinst.sshd.xml
diff -u autoinst.xml.old autoinst.sshd.xml
x070:~ # diff -u autoinst.xml.old autoinst.sshd.xml
--- autoinst.xml.old 2016-12-05 20:51:00.000000000 +0100
+++ autoinst.sshd.xml 2016-12-05 20:54:38.000000000 +0100
@@ -52,7 +52,7 @@
<FW_ALLOW_FW_BROADCAST_EXT>no</FW_ALLOW_FW_BROADCAST_EXT>
<FW_ALLOW_FW_BROADCAST_INT>no</FW_ALLOW_FW_BROADCAST_INT>
<FW_CONFIGURATIONS_DMZ></FW_CONFIGURATIONS_DMZ>
- <FW_CONFIGURATIONS_EXT></FW_CONFIGURATIONS_EXT>
+ <FW_CONFIGURATIONS_EXT>sshd</FW_CONFIGURATIONS_EXT>
<FW_CONFIGURATIONS_INT></FW_CONFIGURATIONS_INT>
<FW_DEV_DMZ></FW_DEV_DMZ>
<FW_DEV_EXT>any eth0</FW_DEV_EXT>
@@ -89,8 +89,8 @@
<FW_SERVICES_INT_RPC></FW_SERVICES_INT_RPC>
<FW_SERVICES_INT_TCP></FW_SERVICES_INT_TCP>
<FW_SERVICES_INT_UDP></FW_SERVICES_INT_UDP>
- <enable_firewall config:type="boolean">false</enable_firewall>
- <start_firewall config:type="boolean">false</start_firewall>
+ <enable_firewall config:type="boolean">true</enable_firewall>
+ <start_firewall config:type="boolean">true</start_firewall>
</firewall>
<general>
<ask-list config:type="list"/>
Итак, ключевые строки:
<firewall>
<enable_firewall config:type="boolean">true</enable_firewall>
<start_firewall config:type="boolean">true</start_firewall>
<FW_CONFIGURATIONS_EXT>sshd</FW_CONFIGURATIONS_EXT>
</firewall>