Я пытаюсь запустить автоматическое соединение при каждой перезагрузке с помощью Cron.
Команда для запуска именно этого соединения autossh:
autossh -M 0 -N -q -o ServerAliveInterval=20 -o ServerAliveCountMax=3 3 HMzg8fspYGfW11oJ7Jl6bkDnT2lYrB@fw1.sshreach.me -i prvtkey2.pem -R 13532:localhost:22 -v
Я поместил эту команду в скрипт bash с именем start-autossh.sh внутри /home /debian. Закрытый ключ prvtkey.pem также находится в этой папке. Я запускаю этот скрипт при перезагрузке с Cron следующим образом:
@reboot 30;cd /home/debian && sh start-autossh.sh
Поначалу это прекрасно работает. Однако, когда я перезагружаю систему, она не работает. Ниже приведены журналы от autossh, когда соединение установлено успешно, против того, когда оно не удалось (после перезагрузки).
Мне интересно, не перезагружается ли на самом деле изящное уничтожение текущего соединения autossh и, следовательно, когда он пытается подключиться снова после загрузки, сервер отказывается от него. Если это будет проблемой, как я могу гарантировать, что соединение autossh будет прервано должным образом при перезагрузке.
Когда соединение autossh успешно:
OpenSSH_7.4p1 Debian-10+deb9u4, 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 *
debug1: Connecting to fw1.sshreach.me [139.162.161.211] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file prvtkey2.pem type -1
debug1: key_load_public: No such file or directory
debug1: identity file prvtkey2.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u4
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6
debug1: match: OpenSSH_6.6 pat OpenSSH_6.5*,OpenSSH_6.6* compat 0x14000000
debug1: Authenticating to fw1.sshreach.me:22 as
'HMzg8fspYGfW11oJ7Jl6bkDnT2lYrB'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: ecdh-sha2-nistp256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC:
<implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC:
<implicit> compression: none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256
SHA256:nCeg0Bt8GiwhKOuEf4Q72pWxxjasEIbxm4yRhAqgkos
debug1: Host 'fw1.sshreach.me' is known and matches the ECDSA host key.
debug1: Found key in /home/debian/.ssh/known_hosts:3
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: prvtkey2.pem
debug1: Authentication succeeded (publickey).
Authenticated to fw1.sshreach.me ([139.162.161.211]:22).
debug1: Remote connections from LOCALHOST:13532 forwarded to local address
localhost:22
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: Remote: Forwarding listen address "localhost" overridden by server
GatewayPorts
debug1: remote forward success for: listen 13532, connect localhost:22
debug1: All remote forwarding requests processed
Когда соединение autossh не было успешным, после перезагрузки (оно застревает при отправке SSH2_MSG_KEXINIT):
OpenSSH_7.4p1 Debian-10+deb9u4, 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 *
debug1: Connecting to fw1.sshreach.me [139.162.161.211] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file prvtkey2.pem type -1
debug1: key_load_public: No such file or directory
debug1: identity file prvtkey2.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u4
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6
debug1: match: OpenSSH_6.6 pat OpenSSH_6.5*,OpenSSH_6.6* compat 0x14000000
debug1: Authenticating to fw1.sshreach.me:22 as
'HMzg8fspYGfW11oJ7Jl6bkDnT2lYrB'
debug1: SSH2_MSG_KEXINIT sent