Каждый раз когда кто-то пишет ssh root@192.168.1.100 -i ~/.ssh/my_key -p 2222 я немного расстраиваюсь. Это всё можно убрать в конфиг раз и навсегда.
~/.ssh/config — файл который большинство людей не трогает. А зря.
Host prod
HostName 168.222.194.174
User root
Port 22
IdentityFile ~/.ssh/id_ed25519
Host staging
HostName 10.0.0.5
User deploy
IdentityFile ~/.ssh/staging_key
ForwardAgent yes
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
AddKeysToAgent yes
После этого ssh prod — и всё. Никаких флагов.
Что здесь важно:
ServerAliveInterval 60 — шлёт keepalive каждую минуту, соединение не рвётся когда сидишь без активности. Меня это раздражало годами пока не добавил.
ForwardAgent yes — прокидывает SSH-агент на удалённый сервер. Нужно если с него нужно ходить на другие серверы или в git по SSH ключу который лежит у вас локально. Включать только для доверенных серверов.
AddKeysToAgent yes — автоматически добавляет ключ в ssh-agent при первом использовании, не надо каждый раз вводить парольную фразу после перезагрузки.
Права на файл важны: chmod 600 ~/.ssh/config, иначе SSH его проигнорирует.
Казалось бы мелочь — но когда каждый день ходишь на 5–10 разных серверов, это реально разница.