Вход по ssh без пароля (RSA-ключ)

Правила форума
Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа.
Аватара пользователя
Chocobo
Сообщения: 4604
Зарегистрирован: 27 авг 2016, 19:57
Решено: 110
Откуда: НН
Благодарил (а): 375 раз
Поблагодарили: 1236 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение Chocobo » 10 янв 2017, 10:53

Для тех кто пользуется управлением linux-хостами по ssh довольно часто - использование ключей для авторизации может быть очень удобным инструментом, чтоб не держать под рукой десятки паролей.
Снимок экрана_2017-01-10_13-38-04.png


Пока не буду вдаваться в технические тонкости механизма (разжуем если кому интересно :smile: ), отмечу только что приватный ключ нужно держать при себе. А пока просто рассмотрим несложный порядок настройки этого функционала используя RSA:

Для начала на своей локальной машине необходимо создать приватный и публичные RSA-ключи (по-умолчанию в ~/.ssh/) командой ssh-keygen -t rsa, здесь можно задать как пароль на ключ (унификация по всем интересующим хостам), так и оставить его пустым для беспарольного входа:
Снимок экрана_2017-01-10_13-28-18.png


На этом почти всё, осталось скопировать публичный ключ на удаленный сервер утилитой ssh-copy-id, потребуется воод пароля удаленной учетной записи.
Снимок экрана_2017-01-10_13-40-44.png


После того как ключ скопирован - можно забыть постоянный ввод пароля при доступе к этому серверу :smile:
Снимок экрана_2017-01-10_13-45-48.png


Напоследок добавлю, что авторизация по ключам является более криптостойким методом, и если отключить на стороне ssh-сервера возможность обычного входа по паролю, можно как минимум обезопасить себя от брутфорса (только ключи терять не стоит, иначе можно обрезать себе ssh-доступ наглухо c последующей необходимостью физического контакта с удаленной машиной).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение

Аватара пользователя
di_mok
Сообщения: 1837
Зарегистрирован: 27 авг 2016, 16:06
Решено: 15
Откуда: Арзамас
Благодарил (а): 529 раз
Поблагодарили: 301 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение di_mok » 10 янв 2017, 11:13

Интересно.
А для SFTP?
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)

Аватара пользователя
Chocobo
Сообщения: 4604
Зарегистрирован: 27 авг 2016, 19:57
Решено: 110
Откуда: НН
Благодарил (а): 375 раз
Поблагодарили: 1236 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение Chocobo » 10 янв 2017, 11:20

di_mok, оно пишется в конфиги ssh-клиента в хомяке - поэтому (как минимум штатными средствами) будет аналогично.

Отправлено спустя 1 минуту 58 секунд:
Набрав sftp-путь в Thunar'e без вопросов попал к корню удаленной ФС
Снимок экрана_2017-01-10_14-16-53.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение

Аватара пользователя
di_mok
Сообщения: 1837
Зарегистрирован: 27 авг 2016, 16:06
Решено: 15
Откуда: Арзамас
Благодарил (а): 529 раз
Поблагодарили: 301 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение di_mok » 10 янв 2017, 11:31

А у меня с ssh-copy-id ни как. (U16.04)

Код: Выделить всё

ssh-copy-id root@192.168.1.99
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.1.99's password:
Permission denied, please try again.
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)

Аватара пользователя
Chocobo
Сообщения: 4604
Зарегистрирован: 27 авг 2016, 19:57
Решено: 110
Откуда: НН
Благодарил (а): 375 раз
Поблагодарили: 1236 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение Chocobo » 10 янв 2017, 11:39

di_mok, Вообще эта команда просто копирует файл публичного ключа и добавляет запись в autorized_keys

Вот примерная последовательность дейтсвий вручную

Код: Выделить всё

# Copy the RSA Pubkey to the server using scp.
# You can use any method you like, including using
# copy/paste if it's convenient.
mydesktop$ cd $HOME/.ssh
mydesktop$ scp id_rsa.pub ssh-server:id_rsa_mydesktop.pub
user@ssh-server's password: (enter password)
 
# Now let's log in and create the authorized_keys file
mydesktop$ ssh ssh-server
user@ssh-server's password: (enter password)
 
# Create the .ssh dir if it doesn't already exist
ssh-server$ mkdir .ssh
ssh-server$ chmod 700 .ssh
ssh-server$ cd .ssh
 
# Concatenate the RSA Pubkey we just uploaded to
# the authorized_keys file.  (This will create
# if it doesn't already exist.)
ssh-server$ cat ../id_rsa_mydesktop.pub >> authorized_keys
 
# Let's check out the file
ssh-server$ cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAcMJy5nn4ZNcD3L32b7y433Zh2IEAnPt
  aIsWf4POIKWR9DXiPgr1aGOTtBTgkqRQm4VBiYoEOlXiiOYKTpQ87aSdUXPipn
  2dqjGn7OfyxYA7oy7i9j7/hYytkyMGx7ROxqD/2WtzU2SZtjs74s/PjxzyBMsr
  ff5M09PsqNypoLLLZas= user@mydesktop
 
# Make sure permissions are paranoid
ssh-server$ chmod 600 authorized_keys


Ну а то, что что руту говорят об отсутствии пермишнов :scratch: Могу предположить только что ты с паролем ошибся :joke:
Изображение

Аватара пользователя
di_mok
Сообщения: 1837
Зарегистрирован: 27 авг 2016, 16:06
Решено: 15
Откуда: Арзамас
Благодарил (а): 529 раз
Поблагодарили: 301 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение di_mok » 10 янв 2017, 11:57

Chocobo писал(а):Источник цитаты Могу предположить только что ты с паролем ошибся

Вот ведь АленьТочно! :-D
Только всё равно пароль запрашивает
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)

Аватара пользователя
Chocobo
Сообщения: 4604
Зарегистрирован: 27 авг 2016, 19:57
Решено: 110
Откуда: НН
Благодарил (а): 375 раз
Поблагодарили: 1236 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение Chocobo » 10 янв 2017, 12:13

Обычно по дефолту везде включена авторизация по ключам, но на всякий случай проверь строки в /etc/ssh/sshd_config сервера

Код: Выделить всё

RSAAuthentication yes
PubkeyAuthentication yes

и передернуть там ssh сервис

ну и verbose-выхлоп при подключении может подсказать в чем причина - ssh -v root@server
Вот где-то тут:

Код: Выделить всё

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/chocobo/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Authentication succeeded (publickey).
Authenticated to servername ([servername_ip]:22).


Странно что у тебя не завелось, у меня так сотни машин крутится, не испытывал порблем :smile:
Изображение

Аватара пользователя
di_mok
Сообщения: 1837
Зарегистрирован: 27 авг 2016, 16:06
Решено: 15
Откуда: Арзамас
Благодарил (а): 529 раз
Поблагодарили: 301 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение di_mok » 10 янв 2017, 12:22

Chocobo писал(а):Источник цитаты проверь строки в /etc/ssh/sshd_config сервера

Всё так.
Chocobo писал(а):Источник цитаты verbose-выхлоп при подключении может подсказать

Код: Выделить всё

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/di_mok/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/di_mok/.ssh/id_dsa
debug1: Trying private key: /home/di_mok/.ssh/id_ecdsa
debug1: Trying private key: /home/di_mok/.ssh/id_ed25519
debug1: Next authentication method: password
root@192.168.1.99's password:
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)

Аватара пользователя
Chocobo
Сообщения: 4604
Зарегистрирован: 27 авг 2016, 19:57
Решено: 110
Откуда: НН
Благодарил (а): 375 раз
Поблагодарили: 1236 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение Chocobo » 10 янв 2017, 12:56

di_mok, ну видишь в чем разница - сервер должен принять ключ на этапе 4-й строчки твоего выхлопа:
Chocobo писал(а):Источник цитаты debug1: Server accepts key: pkalg rsa-sha2-512 blen 279

после чего проходит auth. Давай чтоль глянем глубже этот же этап но с -vvv ключом

ssh -vvv root@server
► Показать
Изображение

Аватара пользователя
di_mok
Сообщения: 1837
Зарегистрирован: 27 авг 2016, 16:06
Решено: 15
Откуда: Арзамас
Благодарил (а): 529 раз
Поблагодарили: 301 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение di_mok » 10 янв 2017, 14:12

► Показать


Отправлено спустя 6 минут 12 секунд:

Код: Выделить всё

debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/di_mok/.ssh/id_dsa
debug3: no such identity: /home/di_mok/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/di_mok/.ssh/id_ecdsa
debug3: no such identity: /home/di_mok/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /home/di_mok/.ssh/id_ed25519
debug3: no such identity: /home/di_mok/.ssh/id_ed25519: No such file or directory
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


Нет у меня такого /home/di_mok/.ssh/id_dsa
Снимок экрана от 2017-01-10 17-12-45.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)

Аватара пользователя
Chocobo
Сообщения: 4604
Зарегистрирован: 27 авг 2016, 19:57
Решено: 110
Откуда: НН
Благодарил (а): 375 раз
Поблагодарили: 1236 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение Chocobo » 10 янв 2017, 14:22

а ты не от sudo случайно насоздавал ключи?

покажи ls -l ~/.ssh/ посмотрим что с овнерами и правами
Изображение

Аватара пользователя
di_mok
Сообщения: 1837
Зарегистрирован: 27 авг 2016, 16:06
Решено: 15
Откуда: Арзамас
Благодарил (а): 529 раз
Поблагодарили: 301 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение di_mok » 10 янв 2017, 18:03

Код: Выделить всё

-rw------- 1 di_mok di_mok 1679 янв 10 14:21 id_rsa
-rw-r--r-- 1 di_mok di_mok  397 янв 10 14:21 id_rsa.pub
-rw-r--r-- 1 di_mok di_mok  222 янв 10 17:08 known_host
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)

Аватара пользователя
sizonov_stas
Сообщения: 15
Зарегистрирован: 30 авг 2016, 21:01
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Вход по ssh без пароля (RSA-ключ)

Сообщение sizonov_stas » 16 янв 2017, 22:25

вставлю свои пять копеек)

для того, чтобы легко подключатся к серверу, куда часто заходим, созадем файл ~/.ssh/config, куда пропишем свои данные:

Код: Выделить всё

Host yohoho
    HostName 123.456.789.111
    Port 12345
    User johnrambo


это все )
теперь, чтобы приконектится к своему серверу, не надо набирать юзернейм@хост, достаточно запустить ssh yohoho

P. S. не лишним будет ограничить права:

Код: Выделить всё

chmod 700 .ssh
chmod 600 .ssh/authorized_keys

Аватара пользователя
di_mok
Сообщения: 1837
Зарегистрирован: 27 авг 2016, 16:06
Решено: 15
Откуда: Арзамас
Благодарил (а): 529 раз
Поблагодарили: 301 раз

Вход по ssh без пароля (RSA-ключ)

Сообщение di_mok » 20 мар 2017, 21:10

А с Debian получилось
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)

Аватара пользователя
Dja
Сообщения: 2004
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 303 раза
Поблагодарили: 222 раза

Вход по ssh без пароля (RSA-ключ)

Сообщение Dja » 23 июл 2017, 00:40

sizonov_stas писал(а):Источник цитаты не надо набирать юзернейм@хост, достаточно запустить ssh yohoho

ну и не будем забывать про алиасы

Код: Выделить всё

nano ~/.bashrc

Находим
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
и ниже дописываем свои строки
к примеру
alias бот="ssh eggdrop@82.146.46.136 -p 2205"
после релогина набрав в консоли бот и нажав энтер вы тем самым запустите ssh - сессию под пользователем eggdrop с хостом по указанному ip и порту. Останется только пароль ввести. Но если вариант с ключами как в шапке, то сразу без пароля и запустится.
Новичок? - ознакомься с правилами
Изображение
В поисках истины :grabli:
Изображение


Вернуться в «Иное программное обеспечение»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость