Доступ через SSH и работа с ключами (доступ ssh по ключам)
Хорошая практика при использовании 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
0