Доступ через SSH и работа с ключами (доступ ssh по ключам)

Автор Itworkroom

Хорошая практика при использовании SSH использовать ключи шифрования, повышается безопасность за счет использования ключей и удобство за счет отключения функции ввода пароля. Для этого необходимо сгенерировать ключи шифрования открытый (публичный) и закрытый (приватный), скопировать публичный ключ на удаленный целевой хост, добавит этот ключ в хранилище и отключить авторизацию по паролю в службе sshd.

Сгенерируем RSA пару ключей на локальном компьютере:

ssh-keygen  
или для увеличения битности ключа: (ssh-keygen -b 4096)

Чтобы изменить или ввести секретную фразу (passphrase):

ssh-keygen -p

Для отображения (вывода на экран) SSH ключа, введите:

ssh-keygen -l

Месторасположение ключей: (/home/user/.ssh/)

  • ~/.ssh/id_rsa — это приватный (закрытый) ключ никому не передавайте и берегите его!
  • ~/.ssh/id_rsa.pub — это публичный ключ, который мы будем перемещать на удаленный хост~/.ssh/id_rsa.pub — это публичный ключ, который мы будем перемещать на удаленный хост Для передачи сгенерированого открытого ключа на удаленный хост, можно использовать утилиту ssh-copy-id:
ssh-copy-id username@remote_host

где username – имя пользователя на удаленном хосте
remote_host – имя или ip удаленного хоста

или для передачи ключа на удаленный хост вручную можно воспользоваться командами:

cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" 

По умолчанию удаленное подключение ssh под root пользователем запрещено, для снятия этого ограничения необходимо отредактировать конфигурационный файл службы sshd (на удаленном хосте, туда куда мы пытаемся подключиться)

Редактируем файл: /etc/ssh/sshd_config

vi /etc/ssh/sshd_config

PermitRootLogin yes

При возникновении проблем с подключением, смените пароль root на целевом хосте командой passwd.

Команда для подключения к удаленному хосту:

ssh remote_host

Если имя пользователя на удаленном хосте отличается от текущего, то необходимо указать имя пользователя:

ssh username@remote_host

Если вы хотите просто запустить команду на удаленном сервере:

ssh username@remote_host command 

Отключение авторизации по паролю:

Отредактируйте конфигурационный файл удаленного (целевого) компьютера /etc/ssh/sshd_config: Найдите в нем директиву PasswordAuthentication и установите значение no

Чтобы изменения вступили в силу, перезагрузите службы sshd:

sudo service ssh restart

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *