На сервере это порт 2042. Если я указываю неправильный порт, то выводится "ssh: connect to host xx.xx.xx.xx port 22: Connection timed out". То есть порт можно уточнять в команде ssh, что я и делаю. Значит ошибка не в этом.
3) скопировал публичный ключ id_dsa.pubв домашнюю директорию на удалённый сервер
Вероятно по этой причине не работает, так как по умолчанию ssh ищет ключи в файле ~/.ssh/authorized_keys а не в домашней директории. По этому либо копируй ключ правильно на сервер командой
ssh-copy-id -i ~/.ssh/id_dsa.pub user@machine
либо на сервере редактируй конфиг sshd_conf, опция AuthorizedKeysFile
Уточню, что скопировал я ключ туда, куда сказал администратор. в директорию ~/.ssh/
Доступа к конфигу на удалённом сервере не имею.
Статью по ссылке я читал. Всё практически выполняю как там написано, но ошибка, вероятно, в каких-то особых конфигах скрыта.
Администратор мне сообщил, что публичный ключ id_dsa.pub нужно поместить в ~/.ssh, что я и сделал.
У меня на компьютере я знаю где хранится приватный ключ, и я могу указать его расположение явно так: ssh -p 2042 [email protected] -i ~/.ssh/id_dsa. Но это не помогает.
Кстати, не очень понятно, как можно использовать команду ssh-copy-id, которая работает при помощи ssh, если сам ssh я ещё не настроил?
Я так сделал и мне вывелось: /usr/bin/ssh-copy-id: ERROR: No identities found
Ещё интересный момент. Администратор сервера предложить скачать и скомпилировать из исходных кодов свою особую программу и использовать её для создания файла ключей и подключения по ssh? o_O Что это может значить? Особый безопасный шел?
Вы всю ветку обсуждаете файл id_dsa.pub, хотя в статье о генерации ключей идет речь о файле id_rsa.pub... Даже там специально выделили жирным шрифтом.
Второе: в файле sshd_config парметр AuthorizedKeysFile надо раскомментить
У меня файл называется mySSH3 и он находится в домашнем каталоге. Почему-то при рестрате Ubuntu 18 про него забывает и приходится вновь будить ssh-agent и делать в домашнем каталоге где этот файл) ssh-add ./mySSH3
Мне при ошибке Permission denied (publickey,password) помогло следующее:
На сервере проверил права на ~/.ssh/authorized_keys, оказалось -rw-------.
Я включил для "other" только чтение: chmod o+r .ssh/authorized_keys
После чего заработало.
На сервере проверил права на ~/.ssh/authorized_keys, оказалось -rw-------.
Я включил для "other" только чтение:
А мне показалось что так не правильно, должно стоять -rw-------
А в случае ошибки нужно смотреть /etc/ssh/sshd_config и значение пункта PasswordAuthentication
Первое, что бросается в глаза: ssh слушает 22 порт, а подключиться пытаетесь через 2042
На сервере это порт 2042. Если я указываю неправильный порт, то выводится "ssh: connect to host xx.xx.xx.xx port 22: Connection timed out". То есть порт можно уточнять в команде ssh, что я и делаю. Значит ошибка не в этом.
Вероятно по этой причине не работает, так как по умолчанию ssh ищет ключи в файле ~/.ssh/authorized_keys а не в домашней директории. По этому либо копируй ключ правильно на сервер командой
ssh-copy-id -i ~/.ssh/id_dsa.pub user@machine
либо на сервере редактируй конфиг sshd_conf, опция AuthorizedKeysFile
Вот еще почитай Настройка ssh для авторизации по ключу
Уточню, что скопировал я ключ туда, куда сказал администратор. в директорию ~/.ssh/
Доступа к конфигу на удалённом сервере не имею.
Статью по ссылке я читал. Всё практически выполняю как там написано, но ошибка, вероятно, в каких-то особых конфигах скрыта.
При настройках по умолчанию у тебя на клиентской стороне ключи должный быть в папке
$HOME/.ssh/
что-то типа id_dsa, id_dsa.pub
На стороне сервера публичные ключи хранятся в файле
$HOME/.ssh/authorized_keys
Администратор мне сообщил, что публичный ключ id_dsa.pub нужно поместить в ~/.ssh, что я и сделал.
У меня на компьютере я знаю где хранится приватный ключ, и я могу указать его расположение явно так: ssh -p 2042 [email protected] -i ~/.ssh/id_dsa. Но это не помогает.
Кстати, не очень понятно, как можно использовать команду ssh-copy-id, которая работает при помощи ssh, если сам ssh я ещё не настроил?
Я так сделал и мне вывелось: /usr/bin/ssh-copy-id: ERROR: No identities found
Имеется в виду, что есть доступ на сервер и до копирования ключей в ssh работает авторизация по паролю.
Можно попробовать на сервере из папки .ssh сделать
cat id_dsa.pub >> authorized_keys
это добавит ключ в конец файла authorized_keys
Файл "authorization" с текстом "key id_dsa.pub" я также создал, как и требовал администратор. Это было сделано с самого начала.
Ещё интересный момент. Администратор сервера предложить скачать и скомпилировать из исходных кодов свою особую программу и использовать её для создания файла ключей и подключения по ssh? o_O Что это может значить? Особый безопасный шел?
Проблема решена с помощью программы PuTTY и генерирования ключей с помощью команды puttygen. Может кому пригодится, что ключи в openssh и putty это не одно и тоже.
Забавно. Ответ из 2013 помог с Яндекс.Облако в 2020
Строка:
ssh-copy-id -i ~/.ssh/id_dsa.pub user@machine
просто спасла меня после недели мучений.Вы всю ветку обсуждаете файл id_dsa.pub, хотя в статье о генерации ключей идет речь о файле id_rsa.pub... Даже там специально выделили жирным шрифтом.
Второе: в файле sshd_config парметр AuthorizedKeysFile надо раскомментить
ssh -p 2042 [email protected] -i ~/.ssh/id_dsa <<< вот ошибка
У меня файл называется mySSH3 и он находится в домашнем каталоге. Почему-то при рестрате Ubuntu 18 про него забывает и приходится вновь будить ssh-agent и делать в домашнем каталоге где этот файл) ssh-add ./mySSH3
Мне при ошибке Permission denied (publickey,password) помогло следующее:
На сервере проверил права на ~/.ssh/authorized_keys, оказалось -rw-------.
Я включил для "other" только чтение:
chmod o+r .ssh/authorized_keys
После чего заработало.
А мне показалось что так не правильно, должно стоять -rw-------
А в случае ошибки нужно смотреть /etc/ssh/sshd_config и значение пункта PasswordAuthentication
Отправить комментарий