Как включить SSH в Ubuntu 20.04
Безопасный доступ к вашей машине Ubuntu из любого места
Настройте безопасный вход без пароля на удаленный сервер Ubuntu с помощью ключей SSH
SSH - это безопасный сетевой протокол клиент-сервер, который помогает клиентскому компьютеру подключаться и взаимодействовать с удаленным сервером. SSH-соединение гарантирует, что команды, вводимые в терминале, отправляются на удаленный сервер по зашифрованному каналу.
Существует два типа механизмов аутентификации, используемых для подключения к удаленному серверу: аутентификация на основе пароля (подверженная атакам методом грубой силы) и аутентификация на основе ключей SSH (которая очень безопасна).
При аутентификации на основе ключей SSH на клиентском компьютере создается пара ключей, которая называется открытым и закрытым ключом. Копия этого открытого ключа доступна на удаленном сервере. Когда клиент отправляет серверу запрос на соединение, сервер генерирует случайную строку и шифрует ее с помощью открытого ключа. Эту строку можно расшифровать только с помощью закрытого ключа, доступного на клиентском компьютере. Этот метод гарантирует, что к серверу могут получить доступ только клиенты, содержащие закрытый ключ.
В этом руководстве мы увидим, как настроить ключи SSH на сервере Ubuntu 20.04 LTS.
Проверьте, есть ли на вашем компьютере какой-либо существующий ключ SSH
Чтобы проверить, существует ли уже на вашем компьютере пара ключей SSH, введите эту команду в своем терминале.
ls -l ~/.ssh/id_*.pub
Если приведенная выше команда возвращает no such file or directory
или no matches found
, это означает, что пара ключей SSH не существует.
Если у вас есть существующая пара ключей SSH, вы можете использовать одну и ту же пару ключей для доступа к двум удаленным серверам или создать другую пару ключей с другим именем. Перейдем к следующему шагу и посмотрим, как сгенерировать ключи SSH для обоих случаев.
Создание ключей SSH на клиентском компьютере
Чтобы сгенерировать новую пару ключей SSH на вашем компьютере, введите команду, как показано ниже.
ssh-keygen
По умолчанию ключи SSH имеют длину 2048 бит. Для большей безопасности, если вы хотите сгенерировать ключи SSH с более высокими битами, используйте следующую команду.
ssh-keygen -b 4096
Если команда выполняется успешно, на вашем экране появится следующее сообщение.
создание пары ключей открытого и закрытого типа RSA. Введите файл, в котором нужно сохранить ключ (/home/harshit/.ssh/id_rsa):
Теперь, если у вас нет существующей пары ключей SSH на вашем компьютере, просто нажмите Enter
, но если у вас есть существующий ключ SSH, сохраните ключ с другим именем файла, как показано ниже.
Введите файл, в котором нужно сохранить ключ (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx
Замените xxx
в конце имени файла подходящее имя, как показано ниже, и нажмите Enter
.
Введите файл, в котором нужно сохранить ключ (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1
Следующее приглашение попросит вас ввести парольную фразу произвольной длины, это обеспечит двухуровневую безопасность на вашем устройстве.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Ввод этой парольной фразы гарантирует, что даже если человек получит доступ к вашему закрытому ключу, он не сможет получить доступ к вашему удаленному серверу без этой парольной фразы.
Когда весь процесс будет завершен, на вашем экране появится следующее сообщение.
Ключи SSH были созданы в вашей системе. Пришло время скопировать открытый ключ на удаленный сервер.
Копирование открытого ключа на удаленный сервер Ubuntu
Самый простой и быстрый способ скопировать открытый ключ на удаленный сервер - использовать эту ssh-copy-id
утилиту. Но если эта утилита недоступна на вашем компьютере по какой-либо причине, вы также можете использовать другие методы, представленные в этом разделе.
Использование утилиты ssh-copy-id
ssh-copy-id
Утилита по умолчанию доступна на вашей машине Ubuntu , которая копирует открытый ключ из устройства в соответствующий каталог удаленной машины Ubuntu.
Чтобы скопировать общедоступный ключ ssh, просто введите команду в своем терминале, как показано ниже.
ssh-copy-id [email protected]
Замените username
и hostname
в приведенной выше команде на имя пользователя и имя хоста вашего сервера.
Следующее сообщение появится на вашем терминале, если вы подключаетесь к вашему хосту в первый раз, введите yes
и нажмите Enter
.
Подлинность хоста 172.105.XX.XX (172.105.XX.XX) не может быть установлена. Отпечаток ключа ECDSA: xx: xx: xx: xx: 77: fe: 73: xx: xx: 55: 00: ad: d6: xx: xx: xx. Вы уверены, что хотите продолжить подключение (да / нет)? да
Теперь ssh-copy-id
утилита просканирует файл с именем, id_rsa.pub
содержащим открытый SSH-ключ. После завершения процесса сканирования вам будет предложено ввести пароль вашего удаленного сервера, как показано ниже. Введите пароль и нажмите Enter
.
/ usr / bin / ssh-copy-id: INFO: попытка входа в систему с новым ключом (ключами), чтобы отфильтровать уже установленные / usr / bin / ssh-copy-id: ИНФОРМАЦИЯ: осталось установить 1 ключ (и) - если вам будет предложено сейчас установить новые ключи Пароль [защищенный адрес электронной почты] :
После добавления ключа на вашем терминале появится следующее сообщение в качестве вывода.
Количество добавленных ключей: 1 Теперь попробуйте войти в систему с помощью: «ssh ' [email protected] '» и убедитесь, что добавлены только те ключи, которые вам нужны.
Если у вас есть несколько ключей SSH на вашем клиентском компьютере, чтобы скопировать соответствующий открытый ключ на удаленный компьютер, введите команду в шаблоне, показанном ниже.
ssh-copy-id -i id_rsa_xxx.pub [email protected]
💡 Совет
Не забудьте указать .pub в конце имени файла при вводе текста в терминале.
Копирование открытого ключа методом трубопровода
Если ssh-copy-id
утилита недоступна, введите в терминале следующую команду . Эта команда может показаться немного длиннее, но работает правильно.
cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Замените remote_username
и server_ip_address
своим именем пользователя и IP-адресом.
Если на вашем компьютере доступно несколько ключей SSH, замените их id_rsa.pub
открытым файлом ключей SSH по вашему выбору. Например, id_rsa_client_1.pub
.
При появлении запроса введите пароль удаленного пользователя и нажмите Enter
.
[email protected]'s password:
После ввода пароля id_rsa.pub
файл будет скопирован в authorized_keys
файл удаленного сервера.
Копирование открытого ключа вручную
Используйте этот метод, если у вас нет доступа к удаленной системе через аутентификацию по паролю.
Откройте id_rsa.pub
файл с помощью cat
команды в терминале. Вы также можете открыть его из текстового редактора, цель - просто скопировать содержимое файла.
cat ~/.ssh/id_rsa.pub
Содержимое файла будет выглядеть, как показано ниже.
SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6Hy / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH [электронная почта защищена] _PC
Теперь войдите на свой удаленный сервер и вставьте скопированный контент, используя команду, показанную ниже. Замените above_string
скопированным содержимым.
echo above_string >> ~/.ssh/authorized_keys
Настройка нескольких ключей SSH (необязательно)
Этот шаг предназначен для людей, у которых на клиентском компьютере установлено несколько ключей SSH. Пропустите этот раздел, если у вас настроен только один ключ SSH.
Чтобы управлять несколькими ключами SSH, теперь мы создадим config
файл внутри .ssh
каталога, используя команду, показанную ниже.
cd ~/.ssh
vim config
Введите i
для входа в командный режим и введите сведения о нескольких хостах, как показано в следующем примере:
Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1
Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2
Аналогичным образом введите сведения о других удаленных серверах и их ключах. После завершения процесса нажмите Esc
и, :wq
чтобы сохранить и выйти.
Теперь последующие процессы одинаковы как для одного, так и для нескольких ключей SSH на клиентском компьютере.
Войдите на удаленный сервер с помощью ключей SSH
После завершения процесса копирования вашего открытого ключа войдите на удаленный сервер, набрав команду, как показано ниже.
ssh [email protected]_ip_address
Если вы указали парольную фразу при генерации пары ключей, вам будет предложено ввести ее. Новый сеанс откроется после завершения процесса аутентификации.
Вы успешно настроили аутентификацию на основе ключей SSH на удаленном сервере. Но аутентификация на основе пароля все еще активна на вашем сервере, это означает, что ваш удаленный сервер по-прежнему подвержен атакам методом грубой силы.
Итак, теперь мы полностью отключим механизм входа на основе пароля с нашего удаленного сервера.
Отключить механизм входа на основе пароля
Прежде чем вносить какие-либо изменения, убедитесь, что пользователь root или любой пользователь с поддержкой sudo для вашей удаленной учетной записи имеет доступ к вашему серверу с использованием системы аутентификации на основе ключей SSH. Этот шаг полностью заблокирует или отключит вход на основе пароля, поэтому крайне важно, чтобы хотя бы один пользователь с привилегиями root имел доступ к серверу через ключ SSH.
Войдите на свой удаленный сервер Ubuntu и введите команду, показанную ниже.
sudo vim /etc/ssh/sshd_config
Esc
, /
введите «Проверка подлинности пароля» и нажмите enter
. i
и измените значение «PasswordAuthentication yes» на «PasswordAuthentication no».Esc
и повторите описанный выше процесс, чтобы найти «ChallengeResponseAuthentication», «UsePAM» и также измените их значения на no
.PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Как только все значения будут установлены на no
, нажмите Esc
, введите :wq
и нажмите enter
.
Чтобы активировать все изменения, перезапустите ssh
службу, используя команду ниже.
sudo systemctl restart ssh
Теперь откройте новое окно терминала на своем компьютере и убедитесь, что ваша аутентификация по SSH-ключу работает правильно, прежде чем закрывать текущий сеанс.
После завершения процесса проверки закройте все запущенные сеансы.
Теперь мы успешно настроили аутентификацию на основе ключа SSH на нашем сервере Ubuntu 20.04. Теперь никто не может войти на ваш сервер, используя механизм входа на основе пароля.
Безопасный доступ к вашей машине Ubuntu из любого места
Настройте собственный VPN с помощью Wireguard
Одна из первых вещей, которые вы должны установить на свой Linux-компьютер
Простое руководство, которое поможет вам перенести файлы в удаленную систему из вашей системы Linux с помощью команды scp.
Предоставьте root-права любому пользователю с sudo в Ubuntu 20.04 LTS
В этой статье объясняется процесс добавления аутентификации ключей SSH на сервер Ubuntu 20.04 и отключения аутентификации на основе пароля.
Speedtest.net - это сервис для проверки скорости вашего интернет-соединения. Он использует ближайший сервер speedtest.net для загрузки
За исключением всего лишнего, вот список лучших бесплатных видеоредакторов для Ubuntu, которые вы можете использовать для создания потрясающих видеороликов.
Хотя вы всегда можете использовать приложение для слайд-шоу собственных обоев Ubuntu, вот несколько приложений для загрузки и динамической установки обоев.
Установите TensorFlow с помощью Python (pip) или контейнера Docker