2

Я настроил удаленный сервер, который автоматически подключается к локальному серверу через autossh:

sudo autossh -M 10984 -N -f -o "PubkeyAuthentication = yes" -o "PasswordAuthentication = нет" -i /root/.ssh/nopwd -R 6666:localhost:22 @ -p &

Я настроил команду autossh выше в rc.local:

#!/bin/sh -e # # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /root/.ssh/nopwd -R 6666:localhost:22
<username>@<domain> -p portNumber & exit 0

Затем я создал локальный rc-сервис:sudo vi /etc/systemd/system/rc-local.service #add the following lines [Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target

Затем я сказал службе запускаться при каждой загрузке:

sudo systemctl включить rc-local

Удаленный сервер подключается через ssh при загрузке, а затем успешно поддерживает соединение:

Netstat показывает: tcp 0 0 0.0.0.0:6666 0.0.0.0:* LISTEN 22542/sshd

Теперь я пытаюсь подключиться к 6666 на моем локальном сервере:

ssh root@127.0.0.1 -p 6666

Я получаю следующую ошибку: ssh_exchange_identification: чтение: сброс соединения по пиру

Когда я ssh с установленным параметром -vvv, я получаю следующие журналы отладки:

# ssh -vvv 127.0.0.1 -p 6666
OpenSSH_7.6p1 Debian-2, OpenSSL 1.0.2l  25 May 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "127.0.0.1" port 6666
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 6666.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Debian-2
ssh_exchange_identification: read: Connection reset by peer

Однако, если я убью соединение ssh на обоих концах (локальное и удаленное). И затем восстановите обратное соединение ssh с удаленного сервера:

autossh -M 10984 -N -f -o "PubkeyAuthentication = да" -o "PasswordAuthentication = нет" -i /root/.ssh/nopwd -R 6666:localhost:22 @ -p portNumber &

Туннель успешно построен. И тогда я могу ssh через 127.0.0.1 -p 6666 успешно.

ssh root@127.0.0.1 -p 6666 Последний вход в систему: Вс Дек 17 10:50:29 2017 с :: 1

Мне нужна эта работа при загрузке без ручного вмешательства. Что я делаю неправильно?

0