Я каким-то образом убил свой логин по ssh-ключу, пока возился с rsync. Вот запущенная мной команда rsync. (Я нажал Control-C, как только увидел, что он работает):
rsync -avz -e "ssh -i .ssh/id_rsa.pub -p XXXX" --progress ./ user@SERVERNAME/home/user/
После этого я получаю следующую ошибку при попытке ssh в
В доступе отказано (publickey, gssapi-keyex, gssapi-with-mic).
завивки на сервере следующие,
.ssh:
drwx------ 2 frank frank 4096 Nov 22 06:01 .
drwxrwxr-x 35 frank frank 4096 Nov 22 06:23 ..
-rw------- 1 frank frank 3893 Nov 22 05:50 authorized_keys
-rw------- 1 frank frank 1675 Oct 21 2016 id_rsa
-rw-r--r-- 1 frank frank 397 Oct 21 2016 id_rsa.pub
-rw-r--r-- 1 frank frank 420 Nov 22 06:26 known_hosts
~ /:
drwx------ 2 frank frank 4096 Nov 22 06:01 .ssh
Несколько замечаний о моей настройке:
1) нестандартный порт ssh 2) вход без пароля
В таких случаях часто легче диагностировать проблему, просматривая журналы сервера, чем пытаться избавиться от информации со стороны клиента.
Обратите внимание, что либо есть защитная функция, либо ошибка с Rsync при передаче с помощью -a в корневую папку.
Учитывая локальный вызов папки Music, содержащий cow.txt
rsync -a Music/ root@134.209.12.183:/usr/
перемещает файл cow.txt из музыкальной папки в usr /, и я все еще могу войти в систему.
rsync -a Music/ root@134.209.12.183:/root/
перемещает файл cow.txt в / root /, и авторизованные ключи не затрагиваются, но я не могу впоследствии войти в систему с ssh@root134.209.12.183.
Я не уверен, почему это происходит, и не нашел ничего в журнале на сервере, что бы это объяснило.
Но, по крайней мере, легко избежать проблемы
И удаленный, и локальный сервер и запущенный протокол rsync версии 3.1.1 версии 31
в Ubuntu 16.04