Подключение по SSH

Установка SSH-клиента

На большинстве систем Linux SSH-клиент установлен по умолчанию. Если его нет, установите его с помощью пакетного менеджера:

  • Debian/Ubuntu:

    sudo apt update
    sudo apt install openssh-client
  • Red Hat/CentOS:

    sudo yum install openssh-clients

Основная команда для подключения

Для подключения к удаленному серверу используйте команду ssh:

ssh username@hostname
  • username — имя пользователя на удаленном сервере.

  • hostname — IP-адрес или доменное имя удаленного сервера.

Пример:

ssh alice@192.168.1.10

При первом подключении вам будет предложено подтвердить подлинность сервера. Введите yes, чтобы продолжить.

Подключение на нестандартном порту

Если сервер настроен на использование нестандартного порта (например, 2222), используйте опцию -p:

ssh -p 2222 username@hostname

Пример:

ssh -p 2222 alice@192.168.1.10

Аутентификация с помощью ключей SSH

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

  • Создание пары ключей:

    Выполните следующую команду и следуйте инструкциям (по умолчанию ключи сохранятся в ~/.ssh/id_rsa и ~/.ssh/id_rsa.pub):

    ssh-keygen
  • Копирование публичного ключа на сервер:

    Для добавления вашего публичного ключа в файл ~/.ssh/authorized_keys на сервере используйте:

    ssh-copy-id username@hostname

    Пример:

    ssh-copy-id alice@192.168.1.10

    После этого вы сможете подключаться без ввода пароля.

Подключение через прокси (SSH Proxy)

Если вам нужно подключиться через прокси-сервер, вы можете использовать опцию -o ProxyCommand:

ssh -o ProxyCommand="ssh -W %h:%p proxy_user@proxy_host" username@hostname

Пример:

ssh -o ProxyCommand="ssh -W %h:%p bob@proxy.example.com" alice@192.168.1.10

Перенаправление портов

Перенаправление портов позволяет безопасно передавать данные через SSH:

  • Локальное перенаправление порта:

    ssh -L local_port:localhost:remote_port username@hostname

    Это перенаправит трафик с local_port на remote_port на удаленном сервере.

    Пример:

    ssh -L 8080:localhost:80 alice@192.168.1.10

    Это перенаправит локальный порт 8080 на порт 80 удаленного сервера, так что вы можете получить доступ к веб-серверу на удаленной машине через http://localhost:8080.

  • Дистанционное перенаправление порта:

    ssh -R remote_port:localhost:local_port username@hostname

    Это перенаправит трафик с remote_port на local_port на вашей локальной машине.

    Пример:

    ssh -R 9090:localhost:3000 alice@192.168.1.10

    Это перенаправит удаленный порт 9090 на локальный порт 3000.

Использование агентства ключей (SSH Agent)

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

eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa

Использование ~/.ssh/config для удобства

Вы можете создать файл конфигурации ~/.ssh/config, чтобы упростить подключение. Пример файла config:

Host myserver
    HostName 192.168.1.10
    User alice
    Port 2222
    IdentityFile ~/.ssh/id_rsa

Теперь вы можете подключиться с помощью:

ssh myserver

Завершение сеанса SSH

Для завершения сеанса SSH используйте команду:

exit

Или нажмите Ctrl + D.

Эти шаги и команды помогут вам эффективно подключаться и работать с удаленными серверами через SSH.

Last updated