SSH — это как секретный проход в твою серверную. Пароли — прошлый век, а ключи — это когда у тебя есть своя резиновая дубинка, а не мелок для пьяных охранников. Если хочешь не мучаться с логином, забить на постоянные вводы пароля и не бояться скриптовых ботов — учись делать всё правильно и без лишнего пафоса.
Поехали — проверяем, есть ли ключи
Чтобы не создавать новую пару ключей, если они уже есть, забей:
ls -l ~/.ssh/id_*.pub
Если файлов нет — отлично, идём дальше. Есть — либо пользуйся ими, либо скопируй куда-нибудь на всякий и делай новые.
Генерируем новый ключ, потому что старые — это прошлый год
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com" Жмёшь Enter, чтобы сохранить в стандартное место ~/.ssh/id_rsa. Если хочешь, чтобы никто без твоего ведома не залез — ставь парольную фразу. Нет — просто Enter и дальше.
Кидаем ключ на сервер, чтобы не вводить пароли
Самый простой способ — команда:
ssh-copy-id remote_username@server_ip_address
Вводишь пароль один раз, и больше не мучаешься. Если 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 remote_username@server_ip_address
Если пароль не спросили — ты почти бог SSH. Если спросили парольную фразу — тоже нормально, так и задумано.
Выключаем пароли (осторожно, не потеряй ключ!)
Чтобы не дать ботам и хакерам шансов, выключи вход по паролю. Но только если ты точно можешь войти по ключу и у тебя есть sudo.
Открываешь на сервере:
sudo nano /etc/ssh/sshd_config
И меняешь там:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no Перезапускаешь SSH:
sudo systemctl restart ssh
Всё, теперь твой сервер не пускает по паролю и живёт в безопасности. SSH — инструмент мощный, просто используй его нормально.
0 комментариев