Android

Как настроить беспарольный вход по SSH

whatsaper ru Недетские анекдоты про Вовочку

whatsaper ru Недетские анекдоты про Вовочку

Оглавление:

Anonim

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

В этом руководстве мы покажем вам, как настроить аутентификацию на основе ключей SSH, а также как подключиться к вашему серверу Linux без ввода пароля.

Настройка SSH без пароля

Чтобы настроить SSH-вход без пароля в Linux, все, что вам нужно сделать, это сгенерировать открытый ключ аутентификации и добавить его в файл удаленных хостов ~/.ssh/authorized_keys .

Следующие шаги опишут процесс настройки входа без пароля SSH:

  1. Проверьте существующую пару ключей SSH.

    Перед созданием новой пары ключей SSH сначала проверьте, есть ли у вас на клиентском компьютере ключ SSH, потому что вы не хотите перезаписывать существующие ключи.

    Выполните следующую команду ls, чтобы проверить наличие существующих ключей SSH:

    ls -al ~/.ssh/id_*.pub

    Если есть существующие ключи, вы можете использовать их и пропустить следующий шаг или создать резервную копию старых ключей и сгенерировать новый.

    Создайте новую пару ключей SSH.

    Следующая команда сгенерирует новую пару ключей SSH 4096 бит с вашим адресом электронной почты в качестве комментария:

    ssh-keygen -t rsa -b 4096 -C "[email protected]"

    Нажмите Enter чтобы принять местоположение файла по умолчанию и имя файла:

    Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

    Затем инструмент ssh-keygen попросит вас ввести безопасную ключевую фразу. Если вы хотите использовать фразу-пароль, это зависит от вас, если вы решите использовать фразу-пароль, вы получите дополнительный уровень безопасности. В большинстве случаев разработчики и системные администраторы используют SSH без ключевой фразы, поскольку они полезны для полностью автоматизированных процессов. Если вы не хотите использовать пароль, просто нажмите Enter

    Enter passphrase (empty for no passphrase):

    Все взаимодействие выглядит так:

    Чтобы быть уверенным, что ключи SSH сгенерированы, вы можете перечислить ваши новые закрытые и открытые ключи с помощью:

    ls ~/.ssh/id_*

    /home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

    Скопируйте открытый ключ

    Теперь, когда вы сгенерировали пару ключей SSH, чтобы иметь возможность войти на ваш сервер без пароля, вам необходимо скопировать открытый ключ на сервер, которым вы хотите управлять.

    Самый простой способ скопировать ваш открытый ключ на ваш сервер - использовать команду с именем ssh-copy-id . На вашем локальном компьютере тип терминала:

    ssh-copy-id remote_username@server_ip_address

    Вам будет предложено ввести пароль remote_username :

    remote_username@server_ip_address's password:

    Как только пользователь аутентифицирован, открытый ключ будет добавлен к файлу author_keys удаленного пользователя, и соединение будет закрыто.

    Если по какой-либо причине ssh-copy-id недоступна на вашем локальном компьютере, вы можете использовать следующую команду для копирования открытого ключа:

    cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

    Войдите на ваш сервер, используя SSH ключи

    После выполнения описанных выше шагов вы сможете войти на удаленный сервер без запроса пароля.

    Чтобы проверить это, просто попробуйте войти на свой сервер через SSH:

    ssh remote_username@server_ip_address

    Если все прошло хорошо, вы сразу войдете в систему.

Отключение аутентификации по паролю SSH

Чтобы добавить дополнительный уровень безопасности на ваш сервер, вы можете отключить аутентификацию по паролю для SSH.

Перед отключением аутентификации по паролю SSH убедитесь, что вы можете войти на свой сервер без пароля, а пользователь, с которым вы входите, имеет права sudo.

В следующих руководствах описывается, как настроить доступ sudo:

  1. Войдите на удаленный сервер с ключами SSH, как пользователь с привилегиями sudo или root:

    ssh sudo_user@server_ip_address

    Откройте файл конфигурации SSH /etc/ssh/sshd_config , найдите следующие директивы и измените их следующим образом:

    / И т.д. / SSH / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    Как только вы закончите, сохраните файл и перезапустите службу SSH.

    На серверах Ubuntu или Debian выполните следующую команду:

    sudo systemctl restart ssh

    На серверах CentOS или Fedora выполните следующую команду:

    sudo systemctl restart sshd

Вывод

Из этого руководства вы узнали, как настроить аутентификацию на основе ключей SSH, что позволит вам войти на удаленный сервер без ввода пароля пользователя. Вы можете добавить один и тот же ключ к нескольким удаленным подачам.

Мы также показали, как отключить аутентификацию по паролю SSH и добавить дополнительный уровень безопасности на ваш сервер.

SSH безопасности