@Batiskaf_stv
Программист, ИТ-энтузиаст

Не могу подключиться по ssh со второго ПК. Причина?

Настроил на удалённом сервере авторизацию ssh по ключам. На работе всё получилось отлично. Пришёл домой, повторил, но удалённый сервер не пускает с ошибкой "Permission denied (publickey)". Проверил - мой второй клиентский ключ добавился на сервере в .ssh/authorized_keys. При этом компьютер на работе продолжает успешно коннектиться.

Ключи генерировал командой:
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_remote_$(date +%Y-%m-%d) -C "Key for Remote"

(Правда на работе перед генерацией ещё создал клиентский конфиг из инструкции.)
Копировал на сервер одинаково:
ssh-copy-id -i .ssh/id_ed25519_remote_2018-05-24.pub <remote_server>

Хотя файлы публичных ключей получились на обоих клиентах с одинаковыми именами (может в этом причина), но на сервере в ~/.ssh/authorized_keys есть 2 строчки, и вторая строчка точно относится к домашнему компьютеру.
Еще есть особенность, что и рабочий, и домашний комьютер имеют одинаковый внешний IP (из-за использования OpenVPN). Но на рабочем компьютере можно открыть больше одной сессии ssh к этому серверу.
В логах на сервере на попытку коннекта с домашнего ПК дописывается строка:
May 24 22:09:55 <remote_server> sshd[4707]: Connection closed by authenticating user oleg MY_EXTERNAL_IP port 49406 [preauth]

Готов предоставить любую дополнительную информацию.
  • Вопрос задан
  • 2727 просмотров
Решения вопроса 1
@Batiskaf_stv Автор вопроса
Программист, ИТ-энтузиаст
Судя по всему дело было конфиге инструкции.
~/.ssh/config
# Ensure KnownHosts are unreadable if leaked - it is otherwise easier to know which hosts your keys have access to.
HashKnownHosts yes
# Host keys the client accepts - order here is honored by OpenSSH
HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256

KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

После создания этого конфига дома я не смог входить по SSH на серверы дома, на которые раньше давно заходил с помощью ключей.
После некоторых мытарств почистил known_hosts; прописал в файл config записи соответствий хост-ключ из инструкции (регистр имен хостов важен!); заново скопировал
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@remote-server.org

ключи на все серверы - и ЗАРАБОТАЛО.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Очень похоже на то, что из внешней сети (из дома) Вы соединяетесь не с тем узлом, что думаете.
Когда все верно настроено это просто работает, ничего дополнительно на клиенте делать не надо (разумеется, кроме наличия закрытого ключа).

Имею личный опыт работы как локально (домашняя сеть, сервер и клиент на разных ПК) и удаленно (клиент на 3G Интернет, а сервер на маршрутизаторе с проброшенным портом 22).

Проброшен ли у Вас порт? Хоть какой, главное, что Вы знаете его номер и на нем точно отзывается ssh.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы