Closed schel4ok closed 3 years ago
@schel4ok you could debug it using:
ssh -vvvvvvvvv user@host
bash -x script.sh
Then I go server command line to check ssh connection from server to router
root@Server:~# ssh router.spb
admin@router.spb.lan's password:
Акзактли, т.е. ты нагенерил, наимпортировал, а вот проверить именно коннетом не захотел? Вангую, что или 2 раза перегенеривал ssh, и у тебя id_rsa.pub от первого ключа или юзер может быть не тот, но так или иначе надо с этого наса просто проверить ssh-командой, не так ли? или есть третий вариант, который ты увидишь при запуске ssh с -vvvv, что просто права на id_rsa у тебя неправильные
TGT_HOSTNAME="router.spb.lan"
aaand
Host router.spb
magic? Почему они разные?
TGT_HOSTNAME="router.spb.lan"
и Host router.spb
разные, потому что в example.cfg написано hostname must be the same as in your ~/.ssh/config
Я это понял дословно: то что надо именно hostname вписать, а не Host.
Ну ладно. Удалил все старые ключи. Создал пользователя микротика без пароля и попробовал сделать через него. Создался только файл router.spb_20201123_2128.export.des3, а по второму файлу почему-то пришла ошибка LOG.txt
20201123_2128;fail;router.spb_20201123_2128.backup
20201123_2128;okay;router.spb_20201123_2128.export.des3
отчёт о выполнении скрипта из NAS
Current status: 0 (Normal)
Standard output/error:
scp error: /router.spb_20201123_2128.backup: no such file or directory!
Понятно когда оба не создаются, а когда только один, то странно. Оба же файла в одной директории.
@schel4ok - попробуй назвать его mikrotik1, я думаю, что тут дело в точке в имени микротика. как видишь, экспортируется всё ок - потому как на микротике это не создаёт каких-то файлов. А вот бинарный бэкап или создать не может файл с точкой, или потом перекопировать его
всё равно scp error: /routerspb_20201123_2152.backup: no such file or directory!
@schel4ok дык попробуй запустить скрипт через ```bash -x````, чтобы посмотреть дебаг и понять: он не видит source или target? файл, который копировать или директорию куда записать?
Сейчас почему-то всё сразу стало работать, хотя я нихрена не менял. Даже хост обратно вернул Host router.spb
и всё без ошибок бэкапится.
Дальше начал тестировать пошагово.
Поменял юзера на микротике с админа на простого backup_user
с правами read или write - скрипт работает на половину. На сервак прилетает только файл export.des3, а backup нет. И в письме с отчётом о работе скрипта приходит not enough permissions.
Всё хорошо работает только когда backup_user
на микротике имеет права группы full.
Дальше генерирую dsa ключи заново и копирую router-spb_dsa.pub на микротик и сразу же получаю опять ошибку в письме
Permission denied (password).
ERR: cannot establish ssh-connection
Вот проверка ssh-командой.
root@Server:~/.ssh# ssh -vvvvvvvvv router.spb
OpenSSH_7.4p1, OpenSSL 1.0.2u-fips 20 Dec 2019
debug1: Reading configuration data /root/.ssh/config
debug1: /root/.ssh/config line 1: Applying options for router.spb
debug2: resolving "router.spb.lan" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to router.spb.lan [192.168.1.1] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/router-spb_dsa type 2
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/router-spb_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: Remote protocol version 2.0, remote software version ROSSSH
debug1: no match: ROSSSH
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to router.spb.lan:22 as 'backup_user'
debug3: hostkeys_foreach: reading file "/root/.ssh/known_hosts"
debug3: record_hostkey: found key type RSA in file /root/.ssh/known_hosts:1
debug3: load_hostkeys: loaded 1 keys from router.spb.lan
debug3: order_hostkeyalgs: prefer hostkeyalgs: ssh-rsa-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c
debug2: host key algorithms: ssh-rsa-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519
debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com,zlib
debug2: compression stoc: none,zlib@openssh.com,zlib
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: host key algorithms: ssh-dss,ssh-rsa
debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,3des-cbc
debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,3des-cbc
debug2: MACs ctos: hmac-sha1,hmac-md5
debug2: MACs stoc: hmac-sha1,hmac-md5
debug2: compression ctos: none
debug2: compression stoc: none
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256
debug1: kex: host key algorithm: ssh-rsa
debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha1 compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha1 compression: none
debug3: send packet: type 34
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(2048<7680<8192) sent
debug3: receive packet: type 31
debug1: got SSH2_MSG_KEX_DH_GEX_GROUP
debug2: bits set: 1013/2048
debug3: send packet: type 32
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug3: receive packet: type 33
debug1: got SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: ssh-rsa SHA256:myabbracadabra
debug3: hostkeys_foreach: reading file "/root/.ssh/known_hosts"
debug3: record_hostkey: found key type RSA in file /root/.ssh/known_hosts:1
debug3: load_hostkeys: loaded 1 keys from router.spb.lan
debug3: hostkeys_foreach: reading file "/root/.ssh/known_hosts"
debug3: record_hostkey: found key type RSA in file /root/.ssh/known_hosts:1
debug3: load_hostkeys: loaded 1 keys from 192.168.1.1
debug1: Host 'router.spb.lan' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:1
debug2: bits set: 992/2048
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 4294967296 blocks
debug1: Skipping ssh-dss key /root/.ssh/router-spb_dsa - not in PubkeyAcceptedKeyTypes
debug3: send packet: type 5
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
backup_user@router.spb.lan's password:
Я тут нихрена не понял. Кажется публичный ключ найти не может. Но он же там есть. И он импортирован на юзера backup_user
, который у меня указан в файле .ssh/config
На микротик ключ скопирован и импортирован
@schel4ok так а почему вот дебаг тупо через гуглопереводчик не перевести? вот же ошибка, нет?
debug1: Skipping ssh-dss key /root/.ssh/router-spb_dsa - not in PubkeyAcceptedKeyTypes
...
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
backup_user@router.spb.lan's password:
перебирая все ключи, твой клиент увидел, что ключ /root/.ssh/router-spb_dsa не подходит под PubkeyAcceptedKeyTypes и так об этом тебе и написал, нет?
Это кагбэ даже не мой скрипт, это обычная работа ssh, здесь конкретно - клиента, который на синоложи хрен пойми какой
хотя шота мне подсказывает, что не зря оно не хочет твой ключ, потому как скорее всего это дефолтные настройки безопасности, которые уберегают тебя от использования слабого ключа.
бат леть ми гугль ит фор ю май френд: https://unix.stackexchange.com/questions/247612/ssh-keeps-skipping-my-pubkey-and-asking-for-a-password/247614
То что ошибка была примерно тут debug1: Skipping ssh-dss key /root/.ssh/router-spb_dsa - not in PubkeyAcceptedKeyTypes
я как раз догадался, а вот что с этим делать мне было вообще непонятно. Я с этими ключами раньше ни разу не сталкивался и хз почему они могут подходить или не подходить.
Спасибо за подсказку.
Просто заменил ключ dsa на rsa ssh-keygen -t rsa
и теперь всё работает!
А как теперь сделать, чтобы сразу с нескольких микротиков бэкапы собирать?
@schel4ok нутк вот обычно ж люди гуглят по ошибке. Если ты не сталкивался с dsa, зачем их такие генерил вообще тогда? Мог быть просто -t не использовать и у тебя по дефолту было бы rsa
А как теперь сделать, чтобы сразу с нескольких микротиков бэкапы собирать?
Я и с RSA тоже не знаком. По поводу нескольких понял. А нафига пароль на файл экспорта? Если кто-то смог спереть этот файл, то он скорее всего и скрипт экспорта тоже спёр с паролем на расшифровку.
Я и с RSA тоже не знаком. По поводу нескольких понял.
А нафига пароль на файл экспорта? Если кто-то смог спереть этот файл, то он скорее всего и скрипт экспорта тоже спёр с паролем на расшифровку.
I try to setup your backup script from Synology server, but has errors.
in mbkp.sh I changed
ST_ROOT="/volume3/Documents/server/mikrotik/backup"
in example.cfg I changedthen I created DSA key and imported it into Mikrotik
Then in winbox if I go to system > users on the tab SSH Keys I can see imported certificate data
Then I setup root/.ssh/config file
Task is done like that
I try to run script and have this report
On my server I can see
./router.spb.lan
and./router.spb.lan/archive
directories created, but empty and log and readme file. In log file I can see followingThen I go server command line to check ssh connection from server to router
I suppose that the problem is that mikrotik still asking for a password, but it is not clear for me why.