Использование SSH для подключения к удаленному серверу
Введение
Одним из важнейших инструментов в работе системного администратора является SSH.
SSH, или Secure Shell, — это протокол, используемый для безопасного входа на удаленные системы. Это самый распространенный способ получения доступа к удаленным серверам Linux.
В этом руководстве мы обсудим, как использовать SSH для подключения к удаленной системе.
Базовый синтаксис
Чтобы подключиться к удаленной системе с помощью SSH, мы будем использовать команду ssh
. В самом базовом виде команда имеет следующую форму:
remote_host
в этом примере является IP-адресом или доменным именем узла, к которому вы пытаетесь подключиться.
Эта команда предполагает, что ваше имя пользователя на удаленной системе совпадает с именем пользователя в локальной системе.
Если ваше локальное имя пользователя отличается от имени пользователя в удаленной системе, вы можете задать его, используя следующий синтаксис:
- ssh remote_username@remote_host
После подключения к серверу вам, возможно, потребуется подтвердить вашу личность с помощью пароля. Позже мы рассмотрим, как сгенерировать ключи, которые можно использовать вместо паролей.
Чтобы завершить сеанс ssh и вернуться в сеанс локальной оболочки, введите следующую команду:
Как работает SSH?
SSH выполняет подключение клиентской программы к серверу ssh с именем sshd
.
В предыдущем разделе команда ssh
использовалась для вызова клиентской программы. Сервер ssh уже запущен на удаленном хосте remote_host
, который мы указали.
На вашем сервере должен быть запущен сервер sshd
. Если это не так, вам может потребоваться подключение к серверу через веб-консоль или локальную последовательную консоль.
Процесс запуска сервера ssh зависит от дистрибутива Linux, который вы используете.
В Ubuntu вы можете запустить сервер ssh с помощью следующей команды:
Эта команда должна запускать сервер sshd, после чего вы сможете выполнять удаленный вход.
Настройка SSH
При изменении конфигурации SSH вы меняете настройки сервера sshd.
В Ubuntu основной файл конфигурации sshd находится в каталоге /etc/ssh/sshd_config
.
Выполните резервное копирование текущей версии этого файла перед началом редактирования:
- sudo cp /etc/ssh/sshd_config{,.bak}
Откройте файл в текстовом редакторе:
- sudo nano /etc/ssh/sshd_config
Скорее всего, вы захотите оставить большинство опций в этом файле без изменений. Однако существует несколько настроек, на которые вам стоит обратить особое внимание:
/etc/ssh/sshd_config
Port 22
Объявление порта указывает, подключения к какому порту будет отслеживать сервер sshd. По умолчанию используется порт 22
. Вам, скорее всего, не придется изменять данную настройку, если только у вас нет конкретных причин для иного решения. Если вы
/etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
В объявлениях ключей хоста указывается, где нужно искать глобальные ключи хоста. Мы обсудим, что такое ключ хоста, позже.
/etc/ssh/sshd_config
SyslogFacility AUTH
LogLevel INFO
Эти две строки указывают на уровень логирования, который необходимо использовать.
Если вы сталкиваетесь с проблемами при работе с SSH, увеличение объема логируемых данных может быть хорошим решением, которое поможет понять, в чем заключается проблема.
/etc/ssh/sshd_config
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
Эти параметры определяют некоторые данные для входа в систему.
Опция LoginGraceTime
определяет количество секунд, в течение которых следует сохранять подключение при отсутствии успешных попыток входа в систему.
Возможно, вам может быть полезным задать для этого параметра чуть большее количество времени, чем то, которое вам обычно требуется для входа.
PermitRootLogin
определяет, разрешен ли вход с помощью пользователя с правами root.
В большинстве случаев необходимо изменить значение на
, если вы создали учетную запись пользователя, которая имеет доступ к высокому уровню привилегий (через su
или sudo
) и может использоваться для входа в систему через ssh.
strictModes
— это защитник, который будет препятствовать попыткам входа, если файлы аутентификации доступны для чтения всем.
Он позволяет предотвратить попытки входа в систему, когда файлы конфигурации не находятся в безопасном состоянии.
/etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
Эти параметры используются для настройки такой возможности, как X11 Forwarding. X11 Forwarding позволяет просматривать графический пользовательский интерфейс (GUI) удаленной системы на локальной системе.
Эта функция должна быть активирована на сервере и передана клиенту SSH во время подключения с помощью опции -X
.
После внесения изменений сохраните и закройте файл, введя CTRL+X
, Y
, а затем нажмите ENTER
.
Если вы внесли изменения в какие-либо настройки в файле /etc/ssh/sshd_config
, необходимо перезапустить ваш сервер sshd, чтобы изменения вступили в силу:
- sudo systemctl reload ssh
Вы должны тщательно протестировать ваши изменения, чтобы убедиться, что все работает так, как вы ожидаете.
Вы можете использовать несколько активных сеансов во время внесения изменений. Это позволит вам вернуться к первоначальной конфигурации, если это потребуется.
Выполнение входа через SSH с использованием ключей
Хотя возможность входа в удаленную систему с помощью паролей может быть полезна, гораздо лучшей идеей будет настройка аутентификации с помощью ключей.
Как работает аутентификация с помощью ключей?
Аутентификация с помощью ключей реализуется путем создания пары ключей: приватного ключа и публичного ключа.
Приватный ключ располагается на клиентском компьютере, этот ключ защищен и хранится в секрете.
Публичный ключ может передаваться любому лицу или размещаться на сервере, доступ к которому вы хотите получить.
При попытке подключения с использованием пары ключей сервер будет использовать публичный ключ для создания сообщения для клиентского компьютера, которое может быть прочитано только с помощью приватного ключа.
Затем клиентский компьютер отправляет соответствующий ответ обратно серверу, после чего сервер будет знать, что клиент не является поддельным.
Весь этот процесс выполняется в автоматическом режиме после того, как вы настроите ключи.
Создание ключей SSH
Ключи SSH необходимо генерировать на компьютере, откуда вы хотите войти в систему. Как правило, это ваш локальный компьютер.
Введите следующую команду в командной строке:
Нажмите ENTER, чтобы принять используемые по умолчанию значения. Ваши ключи будут сгенерированы в файлах ~/.ssh/id_rsa.pub и ~/.ssh/id_rsa.
Перейдите в каталог .ssh
с помощью следующей команды:
Просмотрите данные о разрешениях для файлов:
Output
-rw-r--r-- 1 demo demo 807 Sep 9 22:15 authorized_keys
-rw------- 1 demo demo 1679 Sep 9 23:13 id_rsa
-rw-r--r-- 1 demo demo 396 Sep 9 23:13 id_rsa.pub
Как вы можете видеть, файл id_rsa
доступен для чтения и записи только владельцу. Именно такие разрешения позволяют сохранить его в секрете.
id_rsa.pub
может использоваться совместно и имеет соответствующие разрешения для данной деятельности.Как передать ваш публичный ключ на сервер
Если в настоящее время вы используете доступ к серверу с помощью пароля, вы можете скопировать ваш публичный ключ на сервер, воспользовавшись данной командой:
В результате будет создан сеанс SSH. Когда вы введете пароль, ваш публичный ключ будет скопирован в файл авторизованных ключей сервера, что позволит не использовать пароль при входе в следующий раз.
Опции для клиентской стороны
Существует ряд опциональных флагов, которые вы можете использовать при подключении через SSH.
Некоторые из них могут быть необходимы при наличии определенных настроек конфигурации
на удаленном хосте.
Например, если вы изменили номер порта в конфигурации sshd
, вам потребуется указать этот порт на клиентской стороне с помощью следующей команды:
- ssh -p port_number remote_host
Если вы хотите выполнить отдельную команду на удаленной системе, вы можете указать ее после имени хоста следующим образом:
- ssh remote_host command_to_run
В результате будет установлено подключение к удаленному компьютеру, а после успешной аутентификации команда будет выполнена.
Как уже отмечалось ранее, если функция X11 forwarding активирована на обоих компьютерах, вы можете получить доступ к данному функционалу, воспользовавшись следующей командой:
При наличии соответствующих инструментов на вашем компьютере программы GUI, которые вы используете на удаленной системе, теперь будут открываться в отдельном окне на локальной системе.
Отключение аутентификации по паролю
Если вы создали ключи SSH, вы можете повысить уровень безопасности вашего сервера, отключив аутентификацию только по паролю. Помимо консоли единственным способом входа на ваш сервер будет использование приватного ключа, который используется в паре с публичным ключом, установленным на сервере.
Предупреждение: перед выполнением этих действий необходимо убедиться, что публичный ключ установлен на сервере. В противном случае вы заблокируете доступ к серверу!
Откройте файл конфигурации sshd
, воспользовавшись пользователем root или пользователем с привилегиями sudo:
- sudo nano /etc/ssh/sshd_config
Найдите строку Password Authentication
и раскомментируйте ее, удалив символ #
в начале строки. Теперь вы можете указать значение no
:
/etc/ssh/sshd_config
PasswordAuthentication no
Вы должны также изменить значения двух других настроек (если вы не вносили изменения в этот файл ранее) — PubkeyAuthentication
и ChallengeResponseAuthentication
. Значения устанавливаются по умолчанию и выглядят следующим образом:
/etc/ssh/sshd_config
PubkeyAuthentication yes
ChallengeResponseAuthentication no
После внесения изменений сохраните и закройте файл.
Теперь нужно перезапустить демон SSH:
- sudo systemctl reload ssh
Теперь аутентификация по паролю должна быть отключена, а ваш сервер должен быть доступен только с помощью аутентификации по ключу SSH.
Заключение
Обучение работе с SSH точно будет полезным, хотя бы потому, что это очень распространенный инструмент.
По мере знакомства с разными опциями вы будете открывать для себя более продвинутый функционал, который поможет сделать вашу жизнь проще. SSH остается популярным благодаря своей безопасности, легковесности и пользе в самых разных ситуациях.
Как пользоваться SSH? А также установка и настройка (Linux, Windows, macOS, Android, iOS) • Android +1
В этой статье расскажем вам как установить SSH в Linux, Windows и Mac, как настроить и как пользоваться! Все до мелочей! Будет интересно!
SSH — это популярный протокол для удаленного управления (администрирования) операционных систем на ядре Linux, Unix. Для новичков Linux не совсем понятно установка данного протокола, настройка и использование, чтобы это исправить было решено написать данную статью!
Одной из самых популярных операционных систем работающих на ядре Linux является Ubuntu, поэтому объяснять о ssh будем именно на ней.
Сначала все действия мы объясним на примере с Linux, а после и в Mac и Windows!
Установка SSH в ОС Linux
В 99,99% случаях в Linux уже установлен ssh клиент, с помощью которого можно подключиться к удаленной машине. Однако, если вы хотите подключаться с другого компьютера к своему, необходимо «скачать ssh сервер».
Сделать это очень просто, все необходимое уже есть в репозиториях (а-ля магазин программ), откройте терминал и введите команду:
sudo apt install openssh-server
То есть, необходима серверная часть, которая делает компьютер доступным в сети по протоколу ssh. Есть клиентская часть, которая уже установлена на ваш компьютер, и с помощью ее, вы подключаетесь к удаленному компьютеру.
Подключение по SSH (с паролем)
Откройте терминал и введите команду для подключения к удаленной машине:
ssh ИмяПользователя@IPадрес
Вначале пишем ssh
, потом имя пользователя который есть на удаленной машине, далее знак @
(собачка) и IP адрес
. Вот например:
ssh sasha@100.08.30.48
Как правило, ssh подключение происходит к порту 22, если вы его принудительно изменили, то нужно его указать. Для этого в конце пишем -p
номер. Вот пример:
ssh sasha@100.08.30.48 -p 3040
После того как вы подключились и если это было первое подключение к машине, вам необходимо будет, добавить машину в доверенные — напишите yes и нажмите Enter. Выполняется это один раз.
Далее необходимо написать пароль пользователя. Его необходимо будет указывать каждый раз!
Создание SSH-ключа и подключение без пароля!
Для того чтобы не запоминать пароль и каждый раз его не вводить, особенно если у вас множество Linux серверов можно создать специальный SSH-ключ. Этот ключ позволит подключаться с уже «известной» машины с «известным» сервером, без использования пароля.
Как создать ключ SSH?
На компьютере за которым вы сейчас находитесь создаем ключ, а после, его необходимо будет скопировать на наш сервер!
Создаем ключ за текущим компьютером:
ssh-keygen -t rsa
После чего будет задан вопрос, где сохранить ключ, по умолчанию это ваша домашняя директория, скрытая папка ./ssh
. В большинстве случаев можно просто нажать Enter, чтобы пропустить.
чтобы найти ключи ssh в терминале, выполните команду:
если вы обычный пользователь cd ~/.ssh
если пользователь root cd /root/.ssh
Далее вам предложат создать кодовое слово, также жмем Enter, чтобы пропустить!
Ключ создан, теперь его необходимо добавить на удаленную машину или сервер.
Как добавить SSH-ключ на сервер?
Для того, чтобы можно было подключаться по ssh без пароля, необходимо скопировать содержимое файла id_rsa.pub на сервер в файл authorized_keys. Есть несколько вариантов как это сделать в Linux и macOS (Windows рассмотрим далее):
Вариант 1
Для этого вводим команду:
ssh-copy-id ИмяПользователя@IPадрес_сервера
Пишем команду ssh-copy-id
, далее имя пользователя, который существует на удаленной машине, символ @
(собачка) и IP адрес
. Вот например:
ssh-copy-id sasha@100.08.30.48
Далее указываем пароль пользователя, который есть на удаленной машине или сервере, после чего ключ будет скопирован.
Вариант 2
Пишем в терминале компьютера за котором вы сидите, где вы создавали ключи:
cat ~/.ssh/id_rsa.pub
После чего получите похожий вывод:
ssh-rsa 1234567890abcdz12345667890comp.local
Подключаемся к серверу по SSH (либо заходим по FTP/SFTP)
Переходим в директорию ./ssh: cd ~/.ssh/
Далее с помощью редактора nano откройте документ authorized_keys для редактирования nano authorized_keys
и добавьте ранее сгенерированный ключ в данный файл и сохраните данные, для этого нажать
- Нажимаем комбинацию CTRL+O, а затем ENTER
- Нажимаем комбинацию CTRL+X
Теперь у вас есть возможность подключаться к серверу или другой машине без использования пароля, просто введя имя пользователя!
Клиент SSH Windows
Одной из самых популярных программ для работы c Linux серверами по SSH в Windows является программа Putty. Скачать данный SSH клиент Windows можно по данному адресу — putty.org.
Подключение по SSH по паролю в Windows
Подключение в Putty по SSH очень простое! Вводим IP адрес, если меняли порт, то указываем другой порт и нажимаем Open:
и после подключения логин и пароль!Подключение по SSH по ключу в Windows
Если вам не хочется вводить каждый раз пароль, а использовать ключ ssh в Putty, то, как и в Linux, сначала необходимо создать ключ, а после перенести его на сервер.
Создаем ключ
- Скачайте еще одну программу PuttyGen и запустите ее
- Нажмите кнопку «Generate» и вводите мышку по сторонам, для того чтобы создался ключ
- После создания ключа нажимаем «Save Privat Key» и указываем место сохранения, сохраняем с расширением .ppk
- Копируем весь ключ в буфер обмена с самой первой строки ssh-rsa:
Программу пока не закрываем и запускаем Putty для подключения
Перенос ключа
- Сохраняем наш Linux сервер в сессиях следующим образом:
- Указываем
ИмяПользователя@IPадрес
- чуть ниже название подключения
- Указываем
- Подключаемся к серверу
- Переходим в директорию ./ssh:
cd ~/.ssh/
- Далее с помощью редактора nano откройте документ authorized_keys для редактирования
nano authorized_keys
и добавьте ранее сгенерированный ключ в данный файл и сохраните данные
- Закройте Putty SSH
- Откройте Putty, нажмите кнопку «Load»
- Далее в настройках SSH -> Auth укажите путь до файла ключа.ppk
- Нажмите Open, после чего запустится сеанс на сервере без использования ключа!
Mac SSH Client
Так как macOS основана на UNIX системе, то подключатся по ssh можно прямо из терминала!
Если есть желание не использовать пароль, то необходимо вначале установить Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
и далее все как в Linux.
Есть также удобный mac ssh client — Termius.
SSH клиент android и iOS
Наиболее удобным клиентом SSH для iOS и Android является приложение Termius!
Для Android:
Для iOS:
Передача и скачивание файлов по SSH (SCP)
Для того чтобы закачать файл с локальной машины на сервер по ssh в Linux и macOS:
scp file1.tar root@ip_adress:/home/dir
Копирование файла с сервера на локальный компьютер Linux или macOS:
scp userName@ip_adress:/home/file1.tar /var/www/
C сервера, на сервер:
scp user@server_ip1:/home/file.txt user@server_ip2:/home/
Для Windows
Для перемещения файлов по SSH в Windows используется pscp.
pscp.exe file.zip root@ip_server:
/var/www/
Настройка SSH
Если необходимо добавить вход в SSH сразу по root:
Смена порта SSH
Так как по умолчанию работа ssh настроена на порт 22, то пользоваться сервером становится не безопасно. Поэтому стоит сменить порт!
С помощью nano отредактируйте документ sshd_config, введите команду:
sudo nano /etc/ssh/sshd_config
раскомментируйте и поменяйте значения Port на необходимый:
# What ports, IPs and protocols we listen for Port 22
Вход только по ключу SSH
С помощью nano отредактируйте документ sshd_config, введите команду:
sudo nano /etc/ssh/sshd_config
Поменяйте значения PasswordAuthentication с yes на no:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no
У вас еще остались вопросы? Пишите их в комментариях, рассказывайте, что у вас получилось или наоборот!
Вот и все! Больше полезных статей и инструкций читайте в разделе Статьи и Хаки Linux. Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней!
Как пользоваться PuTTY для SSH-подключений
PuTTY — популярный клиент для удаленного подключения.
Скачать его можно на официальном сайте PuTTY. Для подключения по SSH с помощью PuTTY воспользуйтесь инструкцией:
Генерация SSH-ключей
Откройте приложение PuTTYgen
В открывшемся окне можно задать тип ключа шифрования и битность, либо оставить настройки по умолчанию.
Нажмите кнопку «generate», чтобы начать генерацию ключа.
Хаотично двигайте мышкой по области окна программы. Это поможет сгенерировать случайные значения в ключевой паре.
После генерации станет доступен созданный ключ:
В этом окне можно задать дополнительные настройки:
— подписать комментарий к паре ключей (в поле «Key comment:») — удобно, чтобы отличать ключи, если вы используете несколько пар
— задать для ключа пароль (в поле «Key passphrase:» и «Confim passphrase:»). Это обеспечит дополнительную безопасность — даже в случае краже ключа сервер будет недоступен без ввода пароля. Пароль недоступен для восстановления в случае утери.Cохраните приватный и публичный ключи. Публичный ключ устанавливается на сервер, к которому нужно выполнить подключении — по аналогии с замком. Приватный ключ используется с подключающейся стороны.
Кнопка «Save private key» сохраняет приватный ключ в формате .ppk. Для использования на виртуальных серверах, сохраните ключ под текстом «Public key for pasting into OpenSSH authorized_keys file:»
Конвертация ключа PuTTY
PuTTy использует собственный формат ключей. Поэтому если вы сгенерировали приватный ключ в личном кабинете Airnode (при помощи OpenStack) или в другой программе, а подключение к виртуальному серверу хотите делать через Putty, необходимо конвертировать приватный ключ.
Для этого:
Откройте приложение «PuTTYgen».
Нажмите «conversation» и выберите «Import key».
Выберите фаил с ключом и откройте его.
После этого сохраните преобразованный приватный ключ с помощью кнопки «Save private key».
Также доступна обратная процедура — если вы захотите сменить SSH-агент с PuTTy на любой другой, нужно сконвертировать ключ в формат OpenSSH.
Для этого используйте меню «Conversions / Import key»:
Как использовать доступ по SSH и SFTP с аутентификацией по ключу?
Если вы пользователь ОС Windows:
Скачайте утилиты Pageant и PuTTYgen отсюда (если вы собираетесь использовать WinSCP для SFTP, то эти утилиты устанавливаются вместе с ним).
Чтобы сгенерировать свою пару публичного и приватного ключей, запустите puttygen.exe. В окне программы нажмите кнопку Generate и немного поводите указателем мыши по пустой области в верхней части окна.
Затем придумайте пароль для ключа и дважды введите его в полях Key passphrase и Confirm passphrase. Это необязательно, пароль можно оставить пустым, но мы настоятельно рекомендуем все-таки ввести его и, более того, сделать длинным и сложным.
После этого сохраните получившиеся ключи, нажав на кнопки Save public key и Save private key. Файл публичного ключа назовите, например, id_rsa.txt, файл приватного ключа — id_rsa.ppk. Также скопируйте текст из поля Public key for pasting into OpenSSH authorized_keys file и сохраните его в файл id_rsa_openssh.txt.
Ваш приватный ключ является секретным — ни в коем случае никому не передавайте его и нигде не публикуйте. Относитесь к нему, как к важному паролю. Публичные же ключи можно передавать и хранить в открытом доступе.
Запустите программу pageant.exe. В области уведомлений на панели задач появится его иконка: дважды кликните по ней, нажав в открывшемся окне на кнопку Add key, выберите файл своего приватного ключа и, указав пароль, активируйте его.
Поместите свой публичный ключ на сервер:
Для использования SSH:
На сервере (с помощью FTP или файлового менеджера контрольной панели) создайте файл ~/.ssh/authorized_keys и поместите в него ваш публичный ключ из файла id_rsa_openssh.txt. Установите права 0700 на папку .ssh и 0600 на файл authorized_keys.
Здесь ~ — это домашняя директория вашего аккаунта (там, где находится папка domains).
Для использования SFTP:
На сервере (с помощью FTP или файлового менеджера контрольной панели) создайте файл ~/.sftp/authorized_keys и поместите в него ваш публичный ключ из файла id_rsa.txt. Установите права 0700 на папку .sftp и 0600 на файл authorized_keys.
Здесь ~ — это домашняя директория FTP-аккаунта. Если вы собираетесь использовать основной FTP-аккаунт, то папку .sftp нужно создать в вашей корневой директории, рядом с папкой domains, если дополнительный — в той папке, которую вы указывали при создании этого FTP-аккаунта.
В файл authorized_keys можно поместить сразу несколько публичных ключей — для разных людей.
Далее достаточно просто подсоединиться к серверу по SSH с помощью PuTTY или по SFTP с помощью SFTP-клиента, поддерживающего авторизацию по ключу (например, WinSCP или FileZilla) без указания пароля. Программа должна сама определить, что для авторизации необходимо использовать ключ.
Если вы пользователь Mac OS или Linux:
Откройте терминал и введите в него команду:
ssh-keygen
Ответ на вопрос об имени файла оставьте пустым (будет взято значение по умолчанию), затем придумайте и введите пароль. Это необязательно, пароль можно оставить пустым, но мы настоятельно рекомендуем все-таки ввести его и, более того, сделать длинным и сложным.
В результате в папке .ssh внутри вашей домашней директории появятся файлы key_rsa и key_rsa.pub. Теперь введите следующую команду:
ssh-keygen -ef ~/.ssh/key_rsa_alt > ~/.ssh/key_rsa_alt.pub
Это создаст в той же папке файл key_rsa_alt.pub, в котором будет находиться ваш публичный ключ в немного другом виде.
Ваш приватный ключ является секретным — ни в коем случае никому не передавайте его и нигде не публикуйте. Относитесь к нему, как к важному паролю. Публичные же ключи можно передавать и хранить в открытом доступе.
Поместите свой публичный ключ на сервер:
Для использования SSH:
На сервере (с помощью FTP или файлового менеджера контрольной панели) создайте файл ~/.ssh/authorized_keys и поместите в него ваш публичный ключ из файла key_rsa_alt.pub. Установите права 0700 на папку .ssh и 0600 на файл authorized_keys.
Здесь ~ — это домашняя директория вашего аккаунта (там, где находится папка domains).
Для использования SFTP:
На сервере (с помощью FTP или файлового менеджера контрольной панели) создайте файл ~/.sftp/authorized_keys и поместите в него ваш публичный ключ из файла key_rsa_alt.pub. Установите права 0700 на папку .sftp и 0600 на файл authorized_keys.
Здесь ~ — это домашняя директория FTP-аккаунта. Если вы собираетесь использовать основной FTP-аккаунт, то папку .sftp нужно создать в вашей корневой директории, рядом с папкой domains, если дополнительный — в той папке, которую вы указывали при создании этого FTP-аккаунта.
В файл authorized_keys можно поместить сразу несколько публичных ключей — для разных людей.
Активируйте свой ключ на локальном компьютере, для этого в терминале введите команду:
ssh-add
В ответ на вопрос терминала о пароле укажите тот пароль, который вы придумали при создании ключа.
Далее достаточно просто подсоединиться к серверу по SSH через терминал или по SFTP с помощью SFTP-клиента, поддерживающего авторизацию по ключу (например, FileZilla) без указания пароля. Программа должна сама определить, что для авторизации необходимо использовать ключ.
Работа по SSH на виртуальном хостинге — как подключиться, создать архив zip, создать, удалить папку или изменить права
В этой статье мы расскажем про SSH: что это такое, как подключиться к серверу по SSH, как создать папку и архив, а также как по SSH изменить права на файлы и папки.
SSH – это протокол передачи данных, позволяющий производить безопасное и защищённое управление операционной системой и данными.
Подключение по SSH возможно на всех тарифных планах виртуального хостинга, кроме тарифа «Host-Lite». Если у вас заказан тарифный план «Host-Lite», повысьте тариф, и у вас появится возможность соединения по SSH Как повысить тарифный план хостинга.
Как подключиться к Windows-серверу по SSH
Если у вас заказан Windows хостинг или Windows VPS, то подключение по SSH невозможно. Управление услугой хостинга происходит через панель управления, а к Windows VPS можно подключиться с помощью RDP.В зависимости от операционной системы, установленной на вашем домашнем компьютере (не путайте с ОС хостинга), для SSH подключения к серверу Linux-хостинга возможны следующие варианты:
- если на вашем компьютере установлена ОС Windows, то подключение происходит через Putty,
- для ОС Linux и macOS на компьютере доступно подключение к SSH через терминал.
Для подключения по SSH в ОС Windows мы рекомендуем использовать SSH-клиент PuTTy. Скачать клиент можно на официальном сайте (англоязычная версия).
Подключение по SSH Windows:
- 1.
Запустите программу PuTTY.
- 2.
На странице с основными настройками сеанса PuTTY, в поле «Host Name» введите IP-адрес сервера.
IP-адрес сервера указан в информационном письме, отправленном на контактный e-mail после заказа хостинга. Также данная информация продублирована в Личном кабинете. Авторизуйтесь на сайте REG.RU и кликните по нужной услуге хостинга. IP-сервера указан на вкладке «Доступы»:
подключение по ssh шаг
подключение по ssh шаг 2
Если вы уже делегировали домен на сервер, вместо IP-адреса можно указать домен. Также в качестве хоста можно использовать технологический домен.
- 3.
При первом подключении к серверу появится окно «Предупреждение безопасности PuTTY». Нажмите Да:
подключение по ssh шаг 3
- 4.
В открывшемся окне PuTTY введите ваш логин услуги хостинга вида «u1234567». Нажмите Enter. Затем введите ваш пароль от услуги хостинга и нажмите Enter. В целях безопасности вводимый пароль не отображается на экране в виде символов. Набирая пароль, вы не увидите на экране ни самого пароля, ни звёздочек.
Чтобы вставить скопированный логин и пароль в окно PuTTy, нажмите Shift + Insert.
Логин и пароль услуги хостинга указаны в информационном письме, отправленном на контактный e-mail после заказа хостинга. Также данная информация продублирована в Личном кабинете. Авторизуйтесь на сайте REG.RU и кликните по нужной услуге хостинга. Логин и пароль указаны на вкладке «Доступы»:
Важно: если вы несколько раз подряд ввели неправильный пароль и сервер заблокировал соединение по SSH (если PuTTY не подключается по SSH), обратитесь в техническую поддержку или подождите 2 часа. По истечении этого времени блокировка снимается автоматически.
подключение по ssh шаг 4
Готово, как только вы подключитесь по SSH, вы окажетесь в домашнем каталоге вашего хостинга. Консольные команды Linux представлены по ссылке. Обратите внимание: многие из этих команд выполнить на виртуальном хостинге не получится (установка и удаление пакетов, монтирование файловых систем и др.), так как у вас нет root-доступа.
Для ОС Linux доступ по SSH осуществляется через терминал, который уже предустановлен в самой системе.
- 1.
Запустите терминал:
- в Unity (Ubuntu): «Главное меню» — в поисковой строке введите слово «Терминал». Либо просто нажмите комбинацию клавиш: Ctrl+Alt+T,
- в Xfce (Xubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал»,
- в KDE (Kubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал».
- 2.
Введите команду:
Где:
- 3.
Нажмите Enter, введите пароль услуги хостинга.
Готово, вы успешно завершили SSH-подключение через терминал.
- 1.
Запустите терминал. Для этого нажмите Cmd + Пробел, введите в поисковой строке Терминал и нажмите Enter.
- 2.
Введите команду:
ssh логин@123.123.123.123
Где:
Нажмите Enter.
- 3.
Если подключение к устройству происходит впервые, то появится предупреждение о том, что ключ сервера не кешируется в реестре. Введите Yes и нажмите Enter:
Как зайти по SSH на macOS
- 4.
Введите пароль учетной записи.
Обратите внимание, в целях безопасности пароль, который вы вводите, не отображается на экране ни в виде самого пароля, ни в виде звёздочек:
Как зайти по SSH на macOS 2
Готово, вы подключились к виртуальному серверу по SSH. Чтобы сбросить подключение, введите команду exit
или закройте терминал.
На Hosting Linux подключение по SSH возможно только под основным логином хостинга (вида u1234567). Создать дополнительного пользователя SSH нельзя.
Чтобы отключить SSH-доступ на хостинге, напишите заявку в службу поддержки. В заявке сообщите ваш логин хостинга (вида u1234567), для которого необходимо отключить доступ по SSH.
Создание архива tar.gz
Подключитесь к серверу по SSH и выполните команду:
tar -czvf name.tar.gz path/folder-name/
- Данная команда создаст архив папки path/folder-name/. Название архива — name.tar.gz,
- все файлы будут сжаты при помощи gzip,
- в процессе создания архива будет показан процесс архивации. Если данная информация вам не нужна, уберите ключ «v» из команды.
Разархивация происходит при помощи команды:
Создание архива zip
Подключитесь к серверу по SSH и выполните команду:
zip -r имя-архива.zip /путь-к-папке
# пример
zip -r log.zip /var/log
В результате команды из примера будет создан архив папки /var/log со всем её содержимым. Имя созданного архива: log.zip. Разархивировать можно будет при помощи команды:
unzip имя-архива.zip
Как создать или удалить папку по SSH
Чтобы создать папку, подключитесь к серверу по SSH и используйте команду:
Где new_folder_name — имя создаваемой папки.
После подключения по SSH удалить папку можно с помощью команды:
Где folder_name — имя удаляемой папки. Ключ —r делает рекурсивное удаление, то есть удаляет папку со всеми вложенными в неё папками и файлами.
Чтобы настроить права доступа к отдельному файлу:
- 1. Подключитесь по SSH.
- 2.
Выполните команду:
chmod 755 /var/www/file_name
Где /var/www/file_name — полный путь до вашего файла (/полный-путь-до-корневой-папки-сайта/сам-файл).
Готово, права на файлы/папки будут изменены.
Чтобы рекурсивно настроить доступ ко всем папкам и файлам на вашем сайте:
- 1. Подключитесь по SSH.
- 2.
Выполните команды:
find /dir_name -type d -exec chmod 755 {} \
find /dir_name -type f -exec chmod 644 {} \
Где dir_name — полный путь до корневой папки сайта (Как узнать корневую папку сайта?).
Первая команда изменит права для всех директорий внутри указанной на 755. Вторая — для файлов внутри указанной директории на 644.
Готово, права на файлы/папки будут изменены.
В качестве альтернативного способа вы можете использовать команду, чтобы сначала задать права всем файлам:
А затем назначить права 755 только на папки:
find /dir_name -type d -exec chmod 755 {} \
Где dir_name — полный путь до корневой папки сайта (Как узнать корневую папку сайта?).
Как запустить Midnight Commander
Midnight Commander — это файловый менеджер.
Чтобы его запустить:
Как использовать кириллицу в терминале Linux
Если у вас ОС Linux, то при подключении к серверу по SSH вы можете использовать в терминале не только латиницу, но и кириллицу.
Если вы хотите использовать кириллицу в течение одного сеанса SSH, то после подключения введите в терминале команду:
export LC_ALL="ru_RU.UTF8"
Если вы хотите использовать кириллицу постоянно, то нужно внести изменения файл в .bashrc. Для этого после подключения по SSH:
- 1.
Откройте файл .bashrc с помощью текстового редактора vim или nano:
nano .bashrc #с помощью редактора nano vim .bashrc #с помощью редактора vim
- 2.
Добавьте в него строку:
export LC_ALL="ru_RU.UTF8"
Готово, теперь при любом подключении к SSH можно будет автоматически использовать кириллицу.
Внимание
Если вы выполнили все шаги инструкции, но не получили желаемого результата, напишите заявку в службу поддержки. Наши специалисты оперативно вам помогут! Помогла ли вам статья?218 раз уже помогла
Базовые SSH Команды
SSH
access_time9 декабря, 2020
hourglass_empty5мин. чтения
ВведениеВ этом руководстве, мы расскажем о 14 базовых SSH командах. Эти SSH команды дадут вам базовые навыки управления и работы с файлами в терминале Linux.
SSH команда | Объяснение |
---|---|
ls | Показать содержимое каталога (список названий файлов) |
cd | Сменить каталог |
mkdir | Создать новую папку (каталог) |
touch | Создать новый файл |
rm | Удалить файл |
cat | Показать содержимое файла |
pwd | Показать текущий каталог (полный путь к этому каталогу) |
cp | Копировать файл/папку |
mv | Переместить файл/папку |
grep | Поиск конкретной фразы в файле |
find | Поиск файлов и папок |
vi/nano | Текстовые редакторы |
history | Показать 50 последних использованных команд |
clear | Очистить окно терминала |
Прокачайте ваш проект, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов. 30-дневная гарантия возврата денег!
К предложению
Что вам понадобитсяПеред тем, как вы начнете это руководство, вам понадобится следующее:
- Доступ к Терминалу.
Рекомендуется иметь виртуальный сервер, с недавно построенным шаблоном, на случай если вы удалите что-то, что не хотели удалять, в таком случае вам не придется восстанавливать сервер и начинать все с начала.
SSH — это сетевой протокол прикладного уровня (с англ. Secure Shell или Безопасная Оболочка). Это протокол, используемый для безопасного доступа к удаленному серверу или системе.
Вот одна из базовых SSH команд, которую вы должны использовать:
ssh user@serverip
Эта команда соединяет вас с вашим сервером, который имеет свой IP адрес serverip и имя пользователя user. Другой, еще более легкий путь для соединения с сервером, это использование команды ssh serverip, в таком случае оболочка будет думать, что вы подключаетесь с тем же именем пользователя под которым вы вошли.
Как только вы введете эту команду, вам будет предложено ввести пароль (если вы подключаетесь впервые, то вы также получите предупреждение о том, что сервер к которому вы подключаетесь не опознан, просто впишите yes в командную строку).
Вот и все, вы подключены к серверу и можете продолжить чтение данного руководства о базовых SSH командах! Если вы хотите выйти из удаленного сервера и вернуться обратно к вашему локальному компьютеру, просто впишите exit в командной строке.
Более детальное руководство о том, как присоединиться к VPS используя Putty SSH (ssh-клиент) вы можете найти здесь.
Шаг 2 — Базовые SSH командыВ этом шаге мы пройдемся по самым основным/часто используемым SSH командам, о которых вам следует знать!
ВАЖНО! Это применимо для всех команд в оболочке. При написании аргумента возле команды, к примеру, cd ‘Folder One’ (где имя папки состоит из двух раздельных слов), вы должны ввести имя папки в кавычках. Команда cd Folder One (без кавычек) работать не будет, потому что система воспримет название как два аргумента (“Folder” и “One”).
- ls – Это команда используется для отображения всех файлов и каталогов. Мы рекомендуем использовать ее с опцией -l, она будет выглядеть так ls -l, в таком случае все файлы будут отображены в удобной для вас форме с подробными деталями и информацией о них. Еще одна полезная опция -a, она отобразит все файлы, включая скрытые файлы/папки (файлы с расширением перед ними, к примеру: каталог .ssh).
- cd – Это команда используется для перемещения между каталогами (cd расшифровывается как “change directory” — “сменить каталог” ). После отображения всех файлов и каталогов при помощи команды ls, вы сможете выбрать каталог, в который желаете перейти. К примеру, есть каталог home в который вы хотите войти. Введите команду cd home, и вы мгновенно измените ваше текущее расположение на каталог “home”. Можете попробовать снова ввести команду ls, чтобы увидеть, что информация выводимая на экран изменилась. Также можете вписать полный путь до нужного каталога, если он расположен на несколько уровней глубже. Для примера можно использовать: cd home/TestDirectory/AnotherDirectory. В таком случае вы будете перемещены в каталог под названием “AnotherDirectory”. Используйте команду cd .. (cd пробел и две точки) для перехода на уровень выше (в нашем примере мы вернемся в “TestDirectory” из каталога “AnotherDirectory”).
- mkdir – Эта команда используется для создания новых каталогов (расшифровывается как “make directory” — “создать каталог”). Она просто создает каталог с выбранным именем, к примеру, mkdir NewFolder создаст папку с именем “NewFolder” в текущем каталоге.
- touch – Эта команда используется для создания файлов с выбранным расширением. К примеру, touch NewFile.txt создаст новый “txt” файл “NewFile” в текущем каталоге (расширение может быть любым, и даже без наличия такового, к примеру, touch NewFile.
- rm – Эта команда используется для удаления выбранного файла или каталога. К примеру, rm NewFile удалит ранее созданный файл с названием “NewFile”. Если вы хотите удалить каталог и все что находится внутри него, используйте rm -r NewFolder, это удалит каталог “NewFolder” и все файлы внутри него.
- cat – Эта команда используется для отображения содержимого файла. К примеру, cat info.txt отобразит содержимое этого файла на экран. Другой пример, cat info.txt info2.txt > mergedinfo.txt объединит вместе два файла (“info.txt” и “info2.txt”) и запишет объединенное содержимое в файл “mergedinfo.txt”.
- pwd – Эта команда покажет ваше текущее положение в файловой системе. К примеру, написав pwd, на выходе вы получите что-то вроде: “home/user/public_html”.
- cp – Эта команда используется для копирования файлов и каталогов. Синтаксис таков:
cp [options] source dest
Обычно вместо source вы пишите файл, который вы хотите скопировать. Вместо dest, пишите расположение файла/папки. Сейчас, если вы напишите название расположения, которого не существует, к примеру, у вас исходный файл oldfile.txt и вы пишите расположение файла newfile.txt, команда просто скопирует файл и вставит его с новым именем.
В дополнение, имеется несколько опций, которые вы можете использовать с командой cp:
- cp -f source dest – Принудительно проводит процедуру копирования удаляя целевой файл при необходимости.
- cp -i source dest – Даст предупредительное сообщение перед перезаписью файла.
- cp -u source dest – Обновит опции. Скопирует файл только в том случае, если исходный файл новее, чем целевой.
- cp -n source dest – Не будет копировать файл, если он уже существует (не перезапишет).
- cp -a source dest – Эта опция будет архивировать файлы.
- mv – Эта команда работает так же как и cp, но вместо копирования файла, она его перемещает. Эту команду также можно использовать для переименования файла. Если мы возьмем тот же пример, что и в случае с командой cp, (в нашем текущем каталоге, у нас есть файл oldfile.txt) и мы пишем эту команду: mv oldfile.txt newfile.txt она попросту переименует файл oldfile.txt в newfile.txt.
- grep – Это команда проводит поиск в заданном файле/каталоге. К примеру: grep ‘word’ file будет проводить поиск файла со словом ‘word’ в файле под названием “file”. grep покажет всю строку из файла, если фраза найдена. К примеру, есть строка ‘All in all it’s just another word in a sentence’ в файле под названием “file”, используя команду grep ‘word’ file, эта строка будет выделена на экране, так как было найдено слово word.
- find – Сейчас эта команда используется для поиска файлов по папкам, которые подходят выбранным критериям (название, размер, тип файла). К примеру, команда: find . -name «*.html» будет выводить все файлы в текущем каталоге, которые имеют окончание/расширение “.html” (надо отметить, что мы использовали знак ” * “ в нашей команде, он говорит системе о том, что неважно какое название имеет файл перед “.html”, важно лишь то, что он заканчивается на “.html”.
- vi/nano – Эта команда используется для входа в текстовый редактор. К примеру: nano newfile создаст либо новый файл с именем “newfile” и войдет в редактор nano, либо начнет редактирование существующего файла “newfile” (если он имеется) с помощью того же редактора. Те же вещи применимы и для команды vi, которая открывает другой редактор под названием “vi”.
ВАЖНО! Nano, в отличии от vi не является стандартным редактором, скорее всего вам необходимо установить его перед тем, как вы начнете его использовать. Руководство о том, как установить редактор nano можно найти здесь.
- history – Эта команда используется для отображения последних использованных вами команд. К примеру: history 20 отобразит 20 последних введенных команд в Терминале Linux.
- clear – Эта команда очистит весь текст в окне Терминала.
Надеемся, что данное руководство было достаточно понятно для освоения и получения знаний о применении базовых SSH команд. Мы рекомендуем посетить эту страницу, для получения более подробной информации о командах упомянутых в этом руководстве!
Советуем ознакомиться с руководством по смене SSH порта для укрепления безопасности вашего сервера.
Что такое SSH – Hexlet Guides
Содержание
- Что значит «протокол»?
- Что значит «защищенный»?
- Зачем это нужно?
- Как подключаться по SSH?
- Fingerprint
- Подключение по паролю
- Подключение по ключу, без пароля
- Генерация ключей
- Загрузка публичного ключа на сервер
- ssh-agent
- Форвардинг (проброс) ключей
- Дополнительные ссылки
SSH — защищенный протокол для удаленного доступа к компьютерам. Через SSH можно выполнять операции в командной строке компьютера, который физически находится в другом месте.
Иными словами, SSH — это дистанционная командная строка. Визуально вы работаете на своем компьютере, но в реальности — на другом.
Что значит «протокол»?
Протокол — это набор соглашений, правил, по которым разные программы могут обмениваться информацией. SSH — это набор правил, который известен и вашему компьютеру, и физически отдаленному компьютеру.
Пример: вы вводите команду удаления файла, и эта команда передается на другой компьютер и выполняется там. Ответ (или сообщение об ошибке) возвращается и показывается на вашем компьютере.
Что значит «защищенный»?
Вся информация передается в зашифрованном виде. Подобно тому, как некоторые сайты работают по HTTPS, шифруя информацию. Например, ваш онлайн-банкинг обязательно должен работать по защищенному соединению. В таком случае даже если всю информацию перехватывает злоумышленник, он не сможет расшифровать её.
Зачем это нужно?
Не всегда есть возможность физически находиться у компьютера, с которым нужно работать. Например, если вы хотите создать свой сайт, то он будет размещен на компьютере хостинг-провайдера. Этот компьютер может находиться на другом конце света. Вам нужен способ запускать команды на этом компьютере не выходя из своего дома.
Как подключаться по SSH?
Для подключения к удаленной машине по SSH нужен клиент — специальная программа. В *nix-подобных системах (Linux, macOS) клиент обычно установлен в системе по умолчанию, и достаточно открыть терминал. В Windows нужно скачать сторонний клиент, например, Putty.
Для подключения нужно указать адрес сервера и, опционально, имя пользователя и порт. Вот как выглядит команда при использовании консольного клиента (в терминале):
ssh username@remote_host -p port
Например, для подключения к серверу 52.307.149.244
в аккаунт ivan
нужно ввести:
ssh [email protected]
Если не указывать порт, то будет использован порт SSH по умолчанию — 22
. Используемый порт задается при настройке SSH-сервера, программы, которая запущена на удаленном компьютере и ожидает подключения извне.
В графическом клиенте вроде Putty нужно ввести ту же информацию в соответствующие поля:
Fingerprint
При первом подключении появится сообщение:
The authenticity of host '52.307.149.244 (52.307.149.244)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Введите yes
в первый раз.
Это нужно для повышения безопасности. При настройке SSH-сервера создается уникальная комбинация символов — fingerprint («отпечатки пальцев»). Ваш компьютер запоминает эту комбинацию и сверяет ее при каждом новом соединении. Если кто-то переустановит SSH-сервер, или всю операционную систему, или вообще заменит удаленный компьютер, сохранив его адрес, то при следующем соединении вы узнаете об этом, потому что изменится fingerprint.
Если fingerprint не меняется, то такое сообщение не будет появляться.
Подключение по паролю
Простейший вариант — подключение по паролю. После ввода команды ssh
система запросит пароль:
[email protected]'s password:
Пароль придется вводить каждый раз.
Подключение по ключу, без пароля
Для удобного подключения по SSH (и многим другим сервисам) без ввода пароля можно использовать ключи.
Нужно создать пару ключей: приватный (закрытый) ключ и публичный (открытый) ключ. Приватный ключ нужно хранить и никогда никому не показывать. Публичный ключ можно показывать всем и распространять свободно.
Эти ключи связаны друг с другом таким образом, что зашифровав информацию одним ключом, расшифровать ее можно только другим. Например, если ваш друг зашифрует письмо вашим публичным ключом, то прочитать его сможете только вы, потому что для этого нужен ваш приватный ключ. И наоборот: если вы зашифруете что-то своим приватным ключом, то расшифровать его можно только вашим публичным ключом. Так как публичный ключ доступен всем, любой может расшифровать это сообщение. Но он может быть уверен, что сообщение пришло именно от вас. В этом заключается идея цифровой подписи.
Генерация ключей
Создадим пару ключей:
ssh-keygen
Программа запустится и спросит, куда сохранять ключи:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Нажмите Enter для сохранения в стандартное место — директорию .ssh/id_rsa
в вашей домашней директории.
Программа запросит passphrase. Это вроде пароля для ключа. Можно просто нажать Enter и пропустить этот шаг. Или ввести passphrase — тогда его нужно будет вводить каждый раз, когда используется ключ.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Ключи созданы:
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
8c:e9:7c:fa:bf:c4:e5:9c:c9:b8:60:1f:fe:1c:d3:8a root@here
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| + |
| o S . |
| o . * + |
| o + = O . |
| + = = + |
| ....Eo+ |
+-----------------+
Теперь у вас есть два файла:
~/.ssh/id_rsa
— приватный ключ. Никогда никому и никуда не передавайте его!~/.ssh/id_rsa.pub
— публичный ключ. Спокойно распространяйте его.
В Windows можно использовать ssh-gen
в подсистеме Ubuntu for Windows или в командной строке Git for Windows. Или создавать ключи графической утилитой вроде PuTTYgen.
Загрузка публичного ключа на сервер
Нужно добавить публичный ключ на сервер в файл ~/.ssh/authorized_keys
. Самый простой способ — запустить на локальной машине команду для копирования ключа:
ssh-copy-id -i /home/demo/.ssh/id_rsa.pub [email protected]
Другой способ — подключиться по паролю, открыть в редакторе файл ~/.ssh/authorized_keys
и добавить в конец текст из вашего файла ~/.ssh/id_rsa.pub
.
Теперь при подключении пароль запрашиваться не будет1.
После включения соединений по ключу рекомендуется отключить подключение по паролю.
ssh-agent
При работе с ключами возможны две неудобные ситуации:
- Если при создании ключа вы указали passphrase (пароль для ключа), то вам придется вводить пароль при каждом подключении.
- Если у вас есть несколько ключей для разных целей, то при соединении по
ssh
придется указывать нужный ключ вручную
ssh-agent решает эти проблемы. Этот агент аутентификации (authentication agent) работает на фоне в *nix-системах. В зависимости от системы, вам, возможно, придется установить и настроить его автозапуск самостоятельно.
Если добавить ключ к агенту, то:
- для него больше не будет спрашиваться passphrase
- не нужно будет вводить ключ вручную — он будет автоматически использован при соответствующем подключении
ssh-add /home/demo/.ssh/id_rsa
добавит ключ id_rsa
в запущенный в системе агент. Если у него есть passphrase, то агент попросит ввести его.
Если запустить ssh-add
без аргументов, то будут добавлены ключи ~/.ssh/id_rsa
, ~/.ssh/id_dsa
, ~/.ssh/id_ecdsa
, ~/.ssh/id_ed25519
и ~/.ssh/identity
.
Список добавленных в агент ключей можно посмотреть командой ssh-add -L
:
→ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC91r/+5WEQHcxVMrxpP9jKuONjlrnEHshfG3v/ab2NKDSljdskODOIsdhaaoDoiSADhAaoDISHasoiDiASisjadOHISDdKJDASHSidshIHDSIHDIAsdjasAs7XG/drBhi16zQ2e8VcLD7bVQS1Cpo0O1tP+93YQBvcIE02RltqVKYo7BlgCaJzpdowK8fHSzpfCYsEFjdjosOjfdsjdjkAJOKkKKHJHhaIiAiaihsiIoqkpqdmlnvnuuUSCaAS8aDhajiadiiAahhakKAKDHAKurmD08jnX9HfH/d15pLK/Glo1Su6iEOU3bW8k92QlY54pPFLKiNRPFuUryE5md7T /Users/demo/.ssh/some_key.pem
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsLC9WpSZ/9YpQ2z1FTSsORcP+ohzCdVjYaoc3C0fRnUbkp4SnvMHFTHNFFod0FhV0cQcOLvBsZAK/0tUPIXeDDFvYD70r5i0AsQbqA0k7gK3b3MP7tmnPxMHd607TI+1FMO54Yig0vnpZOgKmgCsxWq6tckwyLB91BlPiGxLBZiu5yPDIguEQCSnAwkF0vjqrNGsoHB4+fkj0USfjiifsjihf39hifSIHiJFHSijshfj39jfsjisfiisfiissr893IFsifijfsjSOIiAShadfhssU0q0JpjaDEWcMmYXmuz3xSnbhkueGLBXMU2zXDFDWCDSHq9/oRr29UAfVaHAMw== /Users/demo/.ssh/id_rsa
ssh-agent
привязан к сессии. Поэтому, например, если перезагрузить компьютер, то ключи нужно будет добавлять в агент заново.
Форвардинг (проброс) ключей
Если вы подключились к удаленному серверу X, и с него хотите подключиться к другому серверу Y, например, чтобы сделать git pull
с GitHub’а, то придется держать копию ваших ключей на сервере X.
Утилита ssh
с флагом -A
позволяет «пробросить» ключи с подключаемой машины в удаленную:
ssh -A [email protected]
Ключи, добавленные к агенту аутентификации (ssh-agent) станут доступными на удаленном сервере. При этом файлы-ключи физически не будут находиться на сервере.
Дополнительные ссылки
- Основы SSH / Видео на канале Хекслета
- SSH Essentials: Working with SSH Servers, Clients, and Keys
- Памятка пользователям ssh
- Возможность и специфика подключения по ключу зависит от настроек SSH-сервера. Возможно такое, что подключение по ключу запрещено администратором.
Рахим Давлеткалиев
Команда SSH — использование, параметры, конфигурация
Эта страница посвящена команде OpenSSH ssh
в Unix / Linux или терминале Mac. Для получения общей информации о SSH и других реализациях см. Домашнюю страницу протокола SSH. Практически каждая система Unix и Linux включает команду ssh
. Эта команда используется для запуска клиентской программы SSH, которая обеспечивает безопасное соединение с сервером SSH на удаленном компьютере. Команда ssh
используется для входа на удаленный компьютер, передачи файлов между двумя машинами и для выполнения команд на удаленном компьютере.
Команда SSH в Linux
Команда ssh
обеспечивает безопасное зашифрованное соединение между двумя хостами в незащищенной сети. Это соединение также можно использовать для терминального доступа, передачи файлов и для туннелирования других приложений. Графические приложения X11 также можно безопасно запускать через SSH из удаленного места.
Другие команды SSH
Существуют и другие команды SSH, помимо клиента ssh
. У каждого своя страница.
ssh-keygen — создает пару ключей для аутентификации с открытым ключом
ssh-copy-id — настраивает открытый ключ как авторизованный на сервере
ssh-agent — агент для хранения закрытого ключа для одного sign-on
ssh-add — инструмент для добавления ключа к агенту
scp — клиент передачи файлов с командным интерфейсом, подобным RCP
sftp — клиент передачи файлов с командным интерфейсом, подобным FTP
sshd — Сервер OpenSSH
Использование клиента Linux
Linux обычно использует клиент OpenSSH.Команда ssh для входа на удаленный компьютер очень проста. Чтобы войти на удаленный компьютер с именем sample.ssh.com , введите следующую команду в приглашении оболочки:
ssh sample.ssh.com
Если вы впервые используете ssh для подключения к этому удаленной машине, вы увидите сообщение типа:
Не удается установить подлинность хоста sample.ssh.com.
Отпечаток ключа DSA - 04: 48: 30: 31: b0: f3: 5a: 9b: 01: 9d: b3: a7: 38: e2: b1: 0c.
Вы уверены, что хотите продолжить подключение (да / нет)?
Введите да
, чтобы продолжить.Это добавит сервер в список известных хостов ( ~ / .ssh / known_hosts
), как показано в следующем сообщении:
Предупреждение: постоянно добавлен «sample.ssh.com» (DSA) в список известных хосты.
У каждого сервера есть ключ хоста, и вышеупомянутый вопрос связан с проверкой и сохранением ключа хоста, чтобы при следующем подключении к серверу он мог проверить, что это действительно тот же сервер.
После того, как соединение с сервером установлено, пользователь аутентифицируется.Обычно запрашивает пароль. Для некоторых серверов вам может потребоваться ввести одноразовый пароль, сгенерированный специальным аппаратным токеном.
Как только аутентификация будет принята, вы увидите приглашение оболочки для удаленного компьютера.
Указание другого имени пользователя
Также возможно использовать другое имя пользователя на удаленном компьютере, введя команду как:
ssh [email protected]
Вышеупомянутое также может быть выражено с синтаксисом:
ssh -l пример альтернативного имени пользователя.ssh.com
Выполнение удаленных команд на сервере
Команда ssh часто также используется для удаленного выполнения команд на удаленном компьютере без входа в командную строку оболочки. Синтаксис для этого:
ssh hostname command
Например, чтобы выполнить команду:
ls / tmp / doc
на хосте sample.ssh.com , введите следующую команду в Приглашение оболочки:
ssh sample.ssh.com ls / tmp / doc
После аутентификации на удаленном сервере будет отображено содержимое удаленного каталога, и вы вернетесь к приглашению локальной оболочки. -x Отключает пересылку X11.
Файл конфигурации клиента SSH
Команда ssh
считывает свою конфигурацию из файла конфигурации клиента SSH ~ / .ssh / config
. Дополнительные сведения см. На странице файла конфигурации клиента SSH.
Настройка аутентификации с открытым ключом
Чтобы настроить беспарольную аутентификацию с открытым ключом, вы можете создать SSH-ключ и настроить файл authorized_keys. См. Страницы ssh-keygen и ssh-copy-id для получения дополнительной информации.
Настройка переадресации портов
Параметры командной строки можно использовать для настройки переадресации портов. Локальная переадресация означает, что локальный порт (на клиентском компьютере) туннелируется на IP-адрес и порт с сервера. Удаленная пересылка означает, что удаленный порт (на серверном компьютере) пересылается на заданный IP-адрес и порт с клиентской машины. См. Страницу о настройке переадресации портов, чтобы узнать, как их настроить.
OpenSSH также поддерживает пересылку сокетов домена Unix и IP-пакетов от туннельного устройства для установления VPN (виртуальной частной сети).
Параметры командной строки SSH
Некоторые из наиболее важных параметров командной строки для клиента OpenSSH:
-1 Использовать только версию протокола 1.
-2 Используйте только протокол версии 2.
-4 Используйте только адреса IPv4.
-6 Используйте только адреса IPv6.
-A Включение пересылки соединения агента аутентификации.
-a Отключить пересылку соединения агента аутентификации.
-C Использовать сжатие данных
-c cipher_spec Выбирает спецификацию шифра для шифрования сеанса.
-D [bind_address:]
порт Динамическое перенаправление портов на уровне приложения. Это выделяет сокет для прослушивания порта на локальной стороне. Когда к этому порту устанавливается соединение, соединение пересылается по защищенному каналу, а затем протокол приложения используется для определения того, куда подключиться с удаленного компьютера.
-E файл_журнала Добавляйте журналы отладки в log_file вместо стандартной ошибки.
-F файл конфигурации Задает файл конфигурации для каждого пользователя. По умолчанию файл конфигурации для каждого пользователя — ~ / .ssh / config.
-г Позволяет удаленным хостам подключаться к локальным перенаправленным портам.
-i identity_file Файл, из которого читается идентификационный ключ (закрытый ключ) для аутентификации с открытым ключом.
-J [пользователь @]
хост [: порт]
Подключитесь к целевому хосту, сначала установив ssh-соединение с хостом pjump [(/ iam / jump-host), а затем установив оттуда пересылку TCP в конечный пункт назначения.
-l логин Указывает пользователя для входа в систему как на удаленном компьютере.
-p порт Порт для подключения на удаленном хосте.
-q Тихий режим.
-V Отображение номера версии.
-v Подробный режим.
-X Включает пересылку X11.
Немного истории
SSH заменил несколько старых команд и протоколов в Unix и Linux 1990-х годов.Включаются telnet, rlogin и rsh.
SSH работает на TCP / IP-порту 22. Это как раз между ftp и telnet, которые на 20 лет старше. Прочтите историю о том, как SSH получил порт 22.
В следующем видео показано, как и почему изначально был разработан SSH.
История SSH с Tatu Ylonen
SSH Essentials: работа с SSH-серверами, клиентами и ключами
Введение
SSH — это безопасный протокол, используемый в качестве основного средства удаленного подключения к серверам Linux.Он предоставляет текстовый интерфейс, порождая удаленную оболочку. После подключения все команды, которые вы вводите в локальном терминале, отправляются на удаленный сервер и выполняются там.
В этом руководстве в виде шпаргалки мы рассмотрим некоторые распространенные способы подключения к SSH для достижения ваших целей. Это можно использовать в качестве краткого справочника, когда вам нужно знать, как подключиться к серверу или настроить его различными способами.
Как использовать это руководство
- Прочтите сначала раздел «Обзор SSH», если вы не знакомы с SSH в целом или только начинаете.
- Используйте те последующие разделы, которые применимы к тому, чего вы пытаетесь достичь. Большинство разделов не основаны на каких-либо других, поэтому вы можете использовать следующие примеры независимо.
- Используйте меню «Содержание» в левой части этой страницы (при широкой ширине страницы) или функцию поиска в браузере, чтобы найти нужные разделы.
- Скопируйте и вставьте приведенные примеры командной строки, заменив
выделенных
значений своими собственными значениями.
Обзор SSH
Самый распространенный способ подключения к удаленному серверу Linux — через SSH.SSH означает Secure Shell и обеспечивает безопасный и безопасный способ удаленного выполнения команд, внесения изменений и настройки служб. Когда вы подключаетесь через SSH, вы входите в систему, используя учетную запись, которая существует на удаленном сервере.
Как работает SSH
Когда вы подключаетесь через SSH, вы попадете в сеанс оболочки, который представляет собой текстовый интерфейс, в котором вы можете взаимодействовать со своим сервером. Во время сеанса SSH любые команды, которые вы вводите в свой локальный терминал, отправляются через зашифрованный туннель SSH и выполняются на вашем сервере.
SSH-соединение реализовано с использованием модели клиент-сервер. Это означает, что для установления SSH-соединения на удаленном компьютере должна быть запущена часть программного обеспечения, называемая демоном SSH. Это программное обеспечение прослушивает соединения на определенном сетевом порту, аутентифицирует запросы на соединение и создает соответствующую среду, если пользователь предоставляет правильные учетные данные.
На компьютере пользователя должен быть SSH-клиент. Это часть программного обеспечения, которая знает, как взаимодействовать с использованием протокола SSH, и может получать информацию об удаленном хосте для подключения, используемом имени пользователя и учетных данных, которые должны быть переданы для аутентификации.Клиент также может указать определенные сведения о типе соединения, которое он хотел бы установить.
Как SSH аутентифицирует пользователей
Обычно клиенты проходят аутентификацию с использованием паролей (менее безопасных и не рекомендуемых) или ключей SSH, которые очень безопасны.
Пароль для входа в систему зашифрован и понятен новым пользователям. Однако автоматические боты и злоумышленники часто будут неоднократно пытаться пройти аутентификацию в учетных записях, которые позволяют входить в систему по паролю, что может привести к нарушениям безопасности.По этой причине мы рекомендуем всегда настраивать аутентификацию на основе ключей SSH для большинства конфигураций.
SSH-ключи — это соответствующий набор криптографических ключей, которые можно использовать для аутентификации. Каждый набор содержит открытый и закрытый ключ. Открытым ключом можно свободно делиться, не беспокоясь, в то время как закрытый ключ должен тщательно охраняться и никому не предоставляться.
Для аутентификации с использованием ключей SSH пользователь должен иметь пару ключей SSH на своем локальном компьютере. На удаленном сервере открытый ключ должен быть скопирован в файл в домашнем каталоге пользователя по адресу ~ /.ssh / authorized_keys
. Этот файл содержит список открытых ключей, по одному на строку, которым разрешено входить в эту учетную запись.
Когда клиент подключается к хосту, желая использовать аутентификацию с помощью ключа SSH, он проинформирует сервер об этом намерении и сообщит серверу, какой открытый ключ использовать. Затем сервер проверяет свой файл authorized_keys
на наличие открытого ключа, генерирует случайную строку и шифрует ее с помощью открытого ключа. Это зашифрованное сообщение можно расшифровать только с помощью соответствующего закрытого ключа.Сервер отправит это зашифрованное сообщение клиенту, чтобы проверить, действительно ли у него есть связанный закрытый ключ.
После получения этого сообщения клиент расшифрует его с помощью закрытого ключа и объединит случайную строку, которая обнаруживается, с ранее согласованным идентификатором сеанса. Затем он генерирует хэш MD5 этого значения и передает его обратно на сервер. У сервера уже есть исходное сообщение и идентификатор сеанса, поэтому он может сравнить хэш MD5, сгенерированный этими значениями, и определить, что у клиента должен быть закрытый ключ.
Теперь, когда вы знаете, как работает SSH, мы можем начать обсуждение некоторых примеров, демонстрирующих различные способы работы с SSH
.Создание ключей SSH и работа с ними
В этом разделе рассказывается, как сгенерировать ключи SSH на клиентском компьютере и распространить открытый ключ на серверы, где они должны использоваться. Это хороший раздел для начала, если вы ранее не сгенерировали ключи из-за повышенной безопасности, которую он обеспечивает для будущих подключений.
Создание пары ключей SSH
Создание новой пары открытого и закрытого ключей SSH на локальном компьютере — это первый шаг к аутентификации на удаленном сервере без пароля.Если нет веской причины не делать этого, вы всегда должны аутентифицироваться с помощью ключей SSH.
Для генерации ключей SSH можно использовать ряд криптографических алгоритмов, включая RSA, DSA и ECDSA. Ключи RSA обычно предпочтительны и являются типом ключа по умолчанию.
Чтобы сгенерировать пару ключей RSA на локальном компьютере, введите:
Создание пары открытого / закрытого ключей RSA.
Введите файл, в котором нужно сохранить ключ (/home/demo/.ssh/id_rsa):
Это приглашение позволяет выбрать место для хранения закрытого ключа RSA.Нажмите ENTER
, чтобы оставить это значение по умолчанию, которое сохранит их в скрытом каталоге .ssh
в домашнем каталоге вашего пользователя. Если вы не выберете расположение по умолчанию, ваш SSH-клиент найдет ключи автоматически.
Введите кодовую фразу (пусто, если кодовая фраза отсутствует):
Введите ту же парольную фразу еще раз:
Следующее приглашение позволяет вам ввести парольную фразу произвольной длины для защиты вашего закрытого ключа. По умолчанию вам придется вводить любую установленную здесь кодовую фразу каждый раз, когда вы используете закрытый ключ, в качестве дополнительной меры безопасности.Не стесняйтесь нажать ENTER
, чтобы оставить это поле пустым, если вы не хотите использовать кодовую фразу. Однако имейте в виду, что это позволит любому, кто получит контроль над вашим закрытым ключом, войти на ваши серверы.
Если вы выберете парольную фразу, при вводе ничего не будет отображаться. Это мера безопасности.
Выход
Ваш идентификатор был сохранен в /root/.ssh/id_rsa.
Ваш открытый ключ сохранен в /root/.ssh/id_rsa.pub.
Ключевой отпечаток пальца:
8c: e9: 7c: fa: bf: c4: e5: 9c: c9: b8: 60: 1f: fe: 1c: d3: 8a root @ здесь
Изображение ключа randomart:
+ - [RSA 2048] ---- +
| |
| |
| |
| + |
| Операционные системы .|
| о. * + |
| о + = О. |
| + = = + |
| .... Eo + |
+ ----------------- +
Эта процедура сгенерировала пару ключей RSA SSH, расположенную в скрытом каталоге .ssh
в домашнем каталоге вашего пользователя. Это файлы:
-
~ / .ssh / id_rsa
: закрытый ключ. НЕ РАЗМЕЩАЙТЕ ЭТОТ ФАЙЛ! -
~ / .ssh / id_rsa.pub
: связанный открытый ключ. Этим можно свободно делиться без каких-либо последствий.
Создание пары ключей SSH с большим количеством бит
SSH-ключи по умолчанию составляют 2048 бит.Обычно считается, что этого достаточно для обеспечения безопасности, но вы можете указать большее количество битов для более надежного ключа.
Для этого включите аргумент -b
с желаемым количеством битов. Большинство серверов поддерживают ключи длиной не менее 4096 бит. Для защиты от DDOS не принимаются более длинные ключи:
Если вы ранее создавали другой ключ, вас спросят, хотите ли вы перезаписать свой предыдущий ключ:
Перезаписать (да / нет)?
Если вы выберете «да», ваш предыдущий ключ будет перезаписан, и вы больше не сможете входить на серверы, используя этот ключ.Из-за этого не забывайте перезаписывать ключи с осторожностью.
Удаление или изменение кодовой фразы закрытого ключа
Если вы создали кодовую фразу для своего закрытого ключа и хотите изменить или удалить ее, вы можете сделать это легко.
Примечание : Чтобы изменить или удалить парольную фразу, вы должны знать исходную парольную фразу. Если вы потеряли парольную фразу для ключа, обращения за помощью нет, и вам придется сгенерировать новую пару ключей.
Чтобы изменить или удалить кодовую фразу, просто введите:
Введите файл, в котором используется ключ (/ root /.ssh / id_rsa):
Вы можете ввести расположение клавиши, которую хотите изменить, или нажмите ENTER
, чтобы принять значение по умолчанию:
Введите старую кодовую фразу:
Введите старую кодовую фразу, которую вы хотите изменить. Затем вам будет предложено ввести новую кодовую фразу:
. Введите новую кодовую фразу (пусто, если кодовая фраза отсутствует):
Введите ту же парольную фразу еще раз:
Здесь введите новую кодовую фразу или нажмите ENTER
, чтобы удалить кодовую фразу.
Отображение отпечатка ключа SSH
Каждая пара ключей SSH имеет единый криптографический «отпечаток пальца», который можно использовать для однозначной идентификации ключей. Это может быть полезно в самых разных ситуациях.
Чтобы узнать отпечаток ключа SSH, введите:
Введите файл с ключом (/root/.ssh/id_rsa):
Вы можете нажать ENTER
, если это правильное местоположение ключа, иначе введите измененное местоположение.Вам будет предоставлена строка, содержащая битовую длину ключа, отпечаток пальца, учетную запись и хост, для которого она была создана, а также используемый алгоритм:
Выход
4096 8e: c4: 82: 47: 87: c2: 26: 4b: 68: ff: 96: 1a: 39: 62: 9e: 4e demo @ test (RSA)
Копирование вашего открытого ключа SSH на сервер с SSH-Copy-ID
Чтобы скопировать ваш открытый ключ на сервер, что позволит вам проходить аутентификацию без пароля, можно предпринять несколько подходов.
Если у вас в настоящее время настроен SSH-доступ на основе пароля к вашему серверу, и у вас установлена утилита ssh-copy-id
, это простой процесс.Инструмент ssh-copy-id
включен в пакеты OpenSSH многих дистрибутивов Linux, поэтому, скорее всего, он может быть установлен по умолчанию.
Если у вас есть эта опция, вы можете легко передать свой открытый ключ, набрав:
- ssh-copy-id имя пользователя @ remote_host
Вам будет предложено ввести пароль учетной записи пользователя в удаленной системе:
Подлинность хоста 111.111.11.111 (111.111.11.111) не может быть установлена.Отпечаток ключа ECDSA: fd: fd: d4: f9: 77: fe: 73: 84: e1: 55: 00: ad: d6: 6d: 22: fe.
Вы уверены, что хотите продолжить подключение (да / нет)? да
/ usr / bin / ssh-copy-id: INFO: попытка входа в систему с новым ключом (ключами), чтобы отфильтровать уже установленные
/ usr / bin / ssh-copy-id: ИНФОРМАЦИЯ: осталось установить 1 ключ (и) - если вам будет предложено сейчас установить новые ключи
[email protected] пароль:
После ввода пароля содержимое вашего ключа ~ / .ssh / id_rsa.pub
будет добавлено в конец ~ / учетной записи пользователя.ssh / authorized_keys
файл:
Выход
Количество добавленных ключей: 1
Теперь попробуйте войти в систему с помощью: "ssh '[email protected]'"
и убедитесь, что добавлены только те ключи, которые вам нужны.
Теперь вы можете войти в эту учетную запись без пароля:
Копирование вашего открытого ключа SSH на сервер без SSH-Copy-ID
Если у вас нет утилиты ssh-copy-id
, но у вас есть доступ по SSH на основе пароля к удаленному серверу, вы можете скопировать содержимое вашего открытого ключа другим способом.
Вы можете вывести содержимое ключа и передать его команде ssh
. На удаленной стороне вы можете убедиться, что каталог ~ / .ssh
существует, а затем добавить передаваемое содержимое в файл ~ / .ssh / authorized_keys
:
- cat ~ / .ssh / id_rsa.pub | ssh username @ remote_host "mkdir -p ~ / .ssh && cat >> ~ / .ssh / authorized_keys"
Вам будет предложено ввести пароль для удаленной учетной записи:
Подлинность хоста 111.111.11.111 (111.111.11.111) 'не может быть установлен.
Отпечаток ключа ECDSA: fd: fd: d4: f9: 77: fe: 73: 84: e1: 55: 00: ad: d6: 6d: 22: fe.
Вы уверены, что хотите продолжить подключение (да / нет)? да
[email protected] пароль:
После ввода пароля ваш ключ будет скопирован, что позволит вам войти в систему без пароля:
- имя пользователя ssh @ remote_IP_host
Копирование открытого ключа SSH на сервер вручную
Если у вас нет доступа по SSH на основе пароля, вам придется вручную добавить свой открытый ключ на удаленный сервер.
На локальном компьютере вы можете найти содержимое файла открытого ключа, набрав:
Выход
SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh2TmWWv11q5O3pISj2ZFl9Hgh2JLknLLx44 + tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q + bqgZ8SeeM8wzytsY + dVGcBxF6N4JS + zVk5eMcV385gG3Y6ON3EG112n6d + SMXY0OEBIcO6x + PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B + ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G / 12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE + ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77 + xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X / vh3xPff6SQ1BL / zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi / uS66 + PujOO + х / 2FWYepz6ZlN70bRly57Q06J + ZJoc9FfBCbCyYH7U / ASsmY095ywPsBo1XQ9PqhnN1 / YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8 / lERo9oxRm5JFX6TCmj6kmiFqv + Ow9gI0x8GvaQ == демо @ тест
Вы можете скопировать это значение и вручную вставить его в соответствующее место на удаленном сервере.Вам нужно будет войти на удаленный сервер с помощью других средств (например, веб-консоли DigitalOcean).
На удаленном сервере создайте каталог ~ / .ssh
, если он еще не существует:
После этого вы можете создать или добавить файл ~ / .ssh / authorized_keys
, набрав:
- echo public_key_string >> ~ / .ssh / authorized_keys
Теперь вы можете войти на удаленный сервер без пароля.
Основные инструкции по подключению
В следующем разделе рассматриваются некоторые основы подключения к серверу с помощью SSH.
Подключение к удаленному серверу
Чтобы подключиться к удаленному серверу и открыть там сеанс оболочки, вы можете использовать команду ssh
.
В простейшей форме предполагается, что ваше имя пользователя на вашем локальном компьютере такое же, как и на удаленном сервере. Если это правда, вы можете подключиться, используя:
Если ваше имя пользователя на удаленном сервере отличается, вам необходимо передать имя удаленного пользователя следующим образом:
При первом подключении к новому узлу вы увидите сообщение следующего вида:
Подлинность хоста 111.111.11.111 (111.111.11.111) 'не может быть установлен.
Отпечаток ключа ECDSA: fd: fd: d4: f9: 77: fe: 73: 84: e1: 55: 00: ad: d6: 6d: 22: fe.
Вы уверены, что хотите продолжить подключение (да / нет)? да
Введите да
, чтобы подтвердить подлинность удаленного хоста.
Если вы используете аутентификацию по паролю, вам будет предложено ввести пароль для удаленной учетной записи здесь. Если вы используете ключи SSH, вам будет предложено ввести парольную фразу для вашего закрытого ключа, если она установлена, в противном случае вы войдете в систему автоматически.
Выполнение одной команды на удаленном сервере
Чтобы запустить одну команду на удаленном сервере вместо создания сеанса оболочки, вы можете добавить команду после информации о соединении, например:
- имя пользователя ssh @ remote_host command_to_run
Это подключится к удаленному хосту, аутентифицируется с вашими учетными данными и выполнит указанную вами команду. После этого соединение будет немедленно закрыто.
Вход на сервер с другим портом
По умолчанию демон SSH на сервере работает на порту 22
.Ваш SSH-клиент будет считать, что это так, когда вы пытаетесь подключиться. Если ваш SSH-сервер прослушивает нестандартный порт (это будет продемонстрировано в следующем разделе), вам нужно будет указать новый номер порта при соединении с вашим клиентом.
Вы можете сделать это, указав номер порта с помощью опции -p
:
- ssh -p номер_порта имя пользователя @ удаленный_хост
Чтобы избежать необходимости делать это каждый раз при входе на удаленный сервер, вы можете создать или отредактировать файл конфигурации в папке ~ /.ssh
в домашнем каталоге вашего локального компьютера.
Отредактируйте или создайте файл прямо сейчас, набрав:
Здесь вы можете установить параметры конфигурации для конкретного хоста. Чтобы указать новый порт, используйте следующий формат:
~ / .ssh / config
Host remote_alias
Имя хоста remote_host
Порт port_num
Это позволит вам войти в систему без указания конкретного номера порта в командной строке.
Добавление ключей SSH к агенту SSH, чтобы избежать ввода парольной фразы
Если у вас есть кодовая фраза на вашем закрытом SSH-ключе, вам будет предлагаться вводить парольную фразу каждый раз, когда вы используете ее для подключения к удаленному хосту.
Чтобы избежать повторения этого многократно, можно запустить агент SSH. Эта небольшая утилита сохраняет ваш закрытый ключ после того, как вы впервые ввели парольную фразу. Он будет доступен в течение всего сеанса вашего терминала, что позволит вам подключаться в будущем без повторного ввода ключевой фразы.
Это также важно, если вам нужно переслать свои учетные данные SSH (показано ниже).
Чтобы запустить агент SSH, введите в сеанс локального терминала следующее:
Выход
Идентификатор агента 10891
Это запустит программу агента и поместит ее в фоновый режим.Теперь вам нужно добавить свой закрытый ключ к агенту, чтобы он мог управлять вашим ключом:
Введите кодовую фразу для /home/demo/.ssh/id_rsa:
Идентификация добавлена: /home/demo/.ssh/id_rsa (/home/demo/.ssh/id_rsa)
Вам нужно будет ввести свою парольную фразу (если она установлена). После этого файл вашей личности добавляется к агенту, что позволяет вам использовать свой ключ для входа в систему без повторного ввода ключевой фразы.
Перенаправление ваших учетных данных SSH для использования на сервере
Если вы хотите иметь возможность без пароля подключаться к одному серверу из другого сервера, вам нужно будет переслать информацию о вашем SSH-ключе.Это позволит вам пройти аутентификацию на другом сервере через сервер, к которому вы подключены, используя учетные данные на вашем локальном компьютере.
Для начала у вас должен быть запущен ваш SSH-агент и ваш SSH-ключ должен быть добавлен к агенту (см. Ранее). После этого вам необходимо подключиться к вашему первому серверу с помощью опции -A
. Это перенаправит ваши учетные данные на сервер для этого сеанса:
- ssh -A имя пользователя @ remote_host
Отсюда вы можете подключиться по SSH к любому другому хосту, к которому ваш SSH-ключ имеет доступ.Вы подключитесь, как если бы ваш закрытый SSH-ключ был расположен на этом сервере.
Параметры конфигурации на стороне сервера
Этот раздел содержит некоторые общие параметры конфигурации на стороне сервера, которые могут определять способ реакции вашего сервера и разрешенные типы подключений.
Отключение аутентификации по паролю
Если у вас настроены, протестированы и работают ключи SSH, вероятно, стоит отключить аутентификацию по паролю. Это предотвратит вход любого пользователя в SSH с использованием пароля.
Для этого подключитесь к удаленному серверу и откройте файл / etc / ssh / sshd_config
с правами root или sudo:
- sudo nano / etc / ssh / sshd_config
Внутри файла найдите директиву PasswordAuthentication
. Если он закомментирован, раскомментируйте его. Установите значение без
, чтобы отключить вход по паролю:
/ etc / ssh / sshd_config
Пароль Нет аутентификации
После внесения изменений сохраните и закройте файл.Чтобы изменения вступили в силу, необходимо перезапустить службу SSH.
В Ubuntu / Debian:
В CentOS / Fedora:
- sudo service sshd перезапуск
Теперь все учетные записи в системе не смогут входить в систему по SSH с использованием паролей.
Изменение порта, на котором работает демон SSH
Некоторые администраторы предлагают изменить порт по умолчанию, на котором работает SSH. Это может помочь уменьшить количество попыток аутентификации, которым ваш сервер подвергается со стороны автоматических ботов.
Чтобы изменить порт, который прослушивает демон SSH, вам необходимо войти на удаленный сервер. Откройте файл sshd_config
в удаленной системе с правами root, либо войдя в систему с этим пользователем, либо с помощью sudo
:
- sudo nano / etc / ssh / sshd_config
Оказавшись внутри, вы можете изменить порт, на котором работает SSH, найдя спецификацию Port 22
и изменив ее, чтобы отразить порт, который вы хотите использовать.Например, чтобы изменить порт на 4444
, поместите это в свой файл:
/ etc / ssh / sshd_config
# порт 22
Порт 4444
Сохраните и закройте файл, когда закончите. Чтобы изменения вступили в силу, необходимо перезапустить демон SSH.
В Ubuntu / Debian:
В CentOS / Fedora:
- sudo service sshd перезапуск
После перезапуска демона вам необходимо будет пройти аутентификацию, указав номер порта (как показано в предыдущем разделе).
Ограничение пользователей, которые могут подключаться через SSH
Чтобы явно ограничить учетные записи пользователей, которые могут входить в систему через SSH, вы можете использовать несколько различных подходов, каждый из которых включает редактирование файла конфигурации демона SSH.
На удаленном сервере откройте этот файл с правами root или sudo:
- sudo nano / etc / ssh / sshd_config
Первый метод указания учетных записей, которым разрешено входить в систему, — это использование директивы AllowUsers
.Найдите в файле директиву AllowUsers
. Если таковой не существует, создайте его где угодно. После директивы перечислите учетные записи пользователей, которым должен быть разрешен вход через SSH:
/ etc / ssh / sshd_config
AllowUsers user1 user2
Сохраните и закройте файл. Перезапустите демон, чтобы изменения вступили в силу.
В Ubuntu / Debian:
В CentOS / Fedora:
- sudo service sshd перезапуск
Если вам удобнее управлять группами, вы можете использовать вместо него директиву AllowGroups
.Если это так, просто добавьте одну группу, которой должен быть разрешен доступ по SSH (мы создадим эту группу и сразу же добавим участников):
/ etc / ssh / sshd_config
AllowGroups sshmembers
Сохраните и закройте файл.
Теперь вы можете создать системную группу (без домашнего каталога), соответствующую указанной вами группе, набрав:
- sudo groupadd -r sshmembers
Убедитесь, что вы добавили в эту группу все необходимые учетные записи пользователей.Это можно сделать, набрав:
- sudo usermod -a -G sshmembers user1
- sudo usermod -a -G sshmembers user2
Теперь перезапустите демон SSH, чтобы изменения вступили в силу.
В Ubuntu / Debian:
В CentOS / Fedora:
- sudo service sshd перезапуск
Отключение входа в систему с правами root
Часто рекомендуется полностью отключить вход в систему root через SSH после того, как вы настроили учетную запись пользователя SSH с привилегиями sudo
.
Для этого откройте файл конфигурации демона SSH с правами root или sudo на удаленном сервере.
- sudo nano / etc / ssh / sshd_config
Внутри найдите директиву PermitRootLogin
. Если он прокомментирован, раскомментируйте его. Измените значение на «нет»:
/ etc / ssh / sshd_config
PermitRootLogin no
Сохраните и закройте файл. Чтобы внести изменения, перезапустите демон SSH.
В Ubuntu / Debian:
В CentOS / Fedora:
- sudo service sshd перезапуск
Разрешение корневого доступа для определенных команд
В некоторых случаях вам может потребоваться отключить root-доступ в целом, но включить его, чтобы определенные приложения работали правильно. Примером этого может быть процедура резервного копирования.
Это может быть выполнено с помощью файла authorized_keys
пользователя root, который содержит ключи SSH, которым разрешено использовать учетную запись.
Добавьте ключ с локального компьютера, который вы хотите использовать для этого процесса (мы рекомендуем создавать новый ключ для каждого автоматического процесса), в файл authorized_keys
пользователя root на сервере. Мы продемонстрируем здесь команду ssh-copy-id
, но вы можете использовать любой из методов копирования ключей, которые мы обсуждаем в других разделах:
- ssh-copy-id root @ remote_host
Теперь войдите на удаленный сервер.Нам нужно будет настроить запись в файле authorized_keys
, поэтому откройте его с правами root или sudo:
- sudo nano /root/.ssh/authorized_keys
В начале строки с загруженным вами ключом добавьте список command =
, который определяет команду, для которой этот ключ действителен. Это должно включать полный путь к исполняемому файлу, а также любые аргументы:
/root/.ssh/authorized_keys
command = "/ путь / к / команде arg1 arg2" ssh-rsa...
Сохраните и закройте файл, когда закончите.
Теперь откройте файл sshd_config
с правами root или sudo:
- sudo nano / etc / ssh / sshd_config
Найдите директиву PermitRootLogin
и измените значение на force-commands-only
. Это позволит использовать для входа в систему с ключом SSH только root, если для ключа указана команда:
/ etc / ssh / sshd_config
PermitRootLogin только для принудительных команд
Сохраните и закройте файл.Перезапустите демон SSH, чтобы изменения вступили в силу.
В Ubuntu / Debian:
В CentOS / Fedora:
- sudo service sshd перезапуск
Пересылка дисплеев приложения X клиенту
Демон SSH может быть настроен для автоматической пересылки отображения X-приложений на сервере на клиентский компьютер. Чтобы это работало правильно, на клиенте должна быть настроена и включена система X windows.
Чтобы включить эту функцию, войдите на удаленный сервер и отредактируйте файл sshd_config
как root или с привилегиями sudo:
- sudo nano / etc / ssh / sshd_config
Найдите директиву X11Forwarding
. Если он закомментирован, раскомментируйте его. При необходимости создайте его и установите значение «да»:
/ etc / ssh / sshd_config
X11 Перенаправление да
Сохраните и закройте файл.Перезапустите демон SSH, чтобы применить эти изменения.
В Ubuntu / Debian:
В CentOS / Fedora:
- sudo service sshd перезапуск
Чтобы подключиться к серверу и перенаправить отображение приложения, вы должны передать опцию -X
от клиента при подключении:
- ssh -X имя пользователя @ remote_host
Графические приложения, запущенные на сервере в этом сеансе, должны отображаться на локальном компьютере.Производительность может быть немного медленной, но в крайнем случае это очень помогает.
Параметры конфигурации на стороне клиента
В следующем разделе мы сосредоточимся на некоторых настройках, которые вы можете сделать на стороне клиента соединения.
Определение специфичной для сервера информации о подключении
На локальном компьютере вы можете определить индивидуальные конфигурации для некоторых или всех серверов, к которым вы подключаетесь. Они могут храниться в файле ~ / .ssh / config
, который читается вашим SSH-клиентом при каждом его вызове.
Создайте или откройте этот файл в текстовом редакторе на локальном компьютере:
Внутри вы можете определить индивидуальные параметры конфигурации, введя каждый из них с ключевым словом Host
, за которым следует псевдоним. Под ним с отступом вы можете определить любую из директив, найденных на странице руководства ssh_config
:
Пример конфигурации:
~ / .ssh / config
Хост testhost
HostName your_domain
Порт 4444
Демо пользователя
Затем вы можете подключиться к your_domain
через порт 4444
, используя имя пользователя demo
, просто набрав:
Вы также можете использовать подстановочные знаки для соответствия более чем одному хосту.Имейте в виду, что более поздние совпадения могут иметь приоритет перед более ранними. Из-за этого вы должны помещать свои самые общие совпадения вверху. Например, вы можете по умолчанию, чтобы все соединения не разрешали перенаправление X, с переопределением для your_domain
, указав это в своем файле:
~ / .ssh / config
Хост *
Вперед X11 нет
Хост testhost
HostName your_domain
Вперед X11 да
Порт 4444
Демо пользователя
Сохраните и закройте файл, когда закончите.
Поддержание соединений в рабочем состоянии во избежание тайм-аута
Если вы обнаружите, что отключаетесь от сеансов SSH до того, как будете готовы, возможно, у вашего соединения истекло время ожидания.
Вы можете настроить свой клиент так, чтобы он периодически отправлял пакет на сервер, чтобы избежать этой ситуации:
На локальном компьютере вы можете настроить это для каждого соединения, отредактировав файл ~ / .ssh / config
. Открой сейчас:
Если он еще не существует, в верхней части файла определите раздел, который будет соответствовать всем хостам.Установите ServerAliveInterval
на «120», чтобы отправлять пакет на сервер каждые две минуты. Этого должно быть достаточно, чтобы сервер не закрыл соединение:
~ / .ssh / config
Хост *
ServerAliveInterval 120
Сохраните и закройте файл, когда закончите.
Отключение проверки хоста
По умолчанию, каждый раз, когда вы подключаетесь к новому серверу, вам будет показан отпечаток ключа хоста удаленного демона SSH.
Подлинность хоста 111.111.11.111 (111.111.11.111) 'не может быть установлен.
Отпечаток ключа ECDSA: fd: fd: d4: f9: 77: fe: 73: 84: e1: 55: 00: ad: d6: 6d: 22: fe.
Вы уверены, что хотите продолжить подключение (да / нет)? да
Это настроено таким образом, чтобы вы могли проверить подлинность хоста, к которому вы пытаетесь подключиться, и обнаружить экземпляры, в которых злоумышленник может попытаться замаскироваться под удаленный хост.
В определенных обстоятельствах вы можете отключить эту функцию. Примечание : Это может быть большой угрозой безопасности, поэтому убедитесь, что вы знаете, что делаете, если вы настроили свою систему таким образом.
Чтобы внести изменения, откройте файл ~ / .ssh / config
на локальном компьютере:
Если он еще не существует, в верхней части файла определите раздел, который будет соответствовать всем хостам. Установите для директивы StrictHostKeyChecking
значение no
, чтобы автоматически добавлять новые хосты в файл known_hosts
. Установите для UserKnownHostsFile
значение / dev / null
, чтобы не предупреждать о новых или измененных хостах:
~ /.ssh / config
Хост *
StrictHostKeyChecking нет
UserKnownHostsFile / dev / null
Вы можете включить проверку для каждого конкретного случая, изменив эти параметры для других хостов. Значение по умолчанию для StrictHostKeyChecking
— ask
:
~ / .ssh / config
Хост *
StrictHostKeyChecking нет
UserKnownHostsFile / dev / null
Хост testhost
HostName your_domain
StrictHostKeyChecking спросить
UserKnownHostsFile / home / demo /.ssh / known_hosts
Мультиплексирование SSH через одно TCP-соединение
Бывают ситуации, когда установление нового TCP-соединения может занять больше времени, чем хотелось бы. Если вы выполняете несколько подключений к одному и тому же компьютеру, вы можете воспользоваться мультиплексированием.
Мультиплексирование SSH повторно использует одно и то же TCP-соединение для нескольких сеансов SSH. Это устраняет часть работы, необходимой для установления нового сеанса, что, возможно, ускоряет работу. Ограничение количества подключений может быть полезно и по другим причинам.
Чтобы настроить мультиплексирование, вы можете вручную настроить соединения или настроить своего клиента на автоматическое использование мультиплексирования, когда оно доступно. Здесь мы продемонстрируем второй вариант.
Чтобы настроить мультиплексирование, отредактируйте файл конфигурации клиента SSH на локальном компьютере:
Если у вас еще нет определения хоста с подстановочными знаками в верхней части файла, добавьте его сейчас (как Host *
). Мы будем устанавливать значения ControlMaster
, ControlPath
и ControlPersist
, чтобы установить нашу конфигурацию мультиплексирования.
ControlMaster
должен быть установлен на «авто», чтобы иметь возможность автоматически разрешать мультиплексирование, если это возможно. ControlPath
установит путь к управляющему сокету. Первый сеанс создаст этот сокет, а последующие сеансы смогут его найти, потому что он помечен именем пользователя, хостом и портом.
Установка для опции ControlPersist
значения 1
позволит начальному основному соединению быть фоновым. 1
указывает, что TCP-соединение должно автоматически завершаться через одну секунду после закрытия последнего сеанса SSH:
/.ssh / config
Хост *
ControlMaster авто
Путь управления ~/.ssh/multiplex/%r@%h:% p
ControlPersist 1
Сохраните и закройте файл, когда закончите. Теперь нам нужно создать каталог, который мы указали в пути управления:
Теперь любые сеансы, установленные с одним и тем же компьютером, будут пытаться использовать существующий сокет и TCP-соединение. Когда существует последний сеанс, соединение будет разорвано через одну секунду.
Если по какой-либо причине вам необходимо временно обойти конфигурацию мультиплексирования, вы можете сделать это, передав флаг -S
с none
:
- ssh -S none имя пользователя @ remote_host
Настройка туннелей SSH
Туннелирование другого трафика через безопасный туннель SSH — отличный способ обойти ограничительные настройки брандмауэра. Это также отличный способ зашифровать незашифрованный сетевой трафик.
Настройка локального туннелирования на сервер
СоединенияSSH могут использоваться для туннелирования трафика от портов локального хоста к портам удаленного хоста.
Локальное соединение — это способ доступа к сетевому расположению с вашего локального компьютера через удаленный хост. Сначала устанавливается SSH-соединение с вашим удаленным хостом. На удаленном сервере устанавливается соединение с внешним (или внутренним) сетевым адресом, предоставленным пользователем, и трафик в это место туннелируется на ваш локальный компьютер через указанный порт.
Это часто используется для туннелирования в менее ограниченную сетевую среду в обход брандмауэра. Другое распространенное использование — доступ к веб-интерфейсу «только для локального хоста» из удаленного места.
Чтобы установить локальный туннель к удаленному серверу, вам необходимо использовать параметр -L
при подключении, и вы должны предоставить три части дополнительной информации:
- Локальный порт, к которому вы хотите получить доступ к туннельному соединению.
- Хост, к которому должен подключаться удаленный хост.
- Порт, к которому должен подключаться удаленный хост.
Они даются в указанном выше порядке (разделенные двоеточиями) в качестве аргументов для флага -L
. Мы также будем использовать флаг -f
, который заставляет SSH переходить в фоновый режим перед выполнением, и флаг -N
, который не открывает оболочку или не выполняет программу на удаленной стороне.
Например, чтобы подключиться к your_domain
через порт 80 на удаленном хосте, сделав соединение доступным на вашем локальном компьютере через порт 8888, вы можете ввести:
- ssh -f -N -L 8888: your_domain: 80 имя пользователя @ remote_host
Теперь, если вы укажете в локальном веб-браузере на 127.0.0.1: 8888
, вы должны увидеть, какой контент находится на your_domain
на порту 80
.
Более общее руководство по синтаксису:
- ssh -L your_port: site_or_IP_to_access: site_port имя пользователя @ host
Поскольку соединение находится в фоновом режиме, вам нужно будет найти его PID, чтобы его уничтожить. Вы можете сделать это, выполнив поиск по перенаправленному порту:
Выход
1001 5965 0.0 0,0 48168 1136? Ss 12:28 0:00 ssh -f -N -L 8888: your_domain: 80 имя пользователя @ remote_host
1001 6113 0,0 0,0 13648 952 точки / 2 S + 12:37 0:00 grep --colour = auto 8888
Затем вы можете убить процесс, указав PID, который является числом во втором столбце строки, соответствующей вашей команде SSH:
Другой вариант — запустить соединение без флага -f
. Это сохранит соединение на переднем плане, не позволяя вам использовать окно терминала во время пересылки.Преимущество этого заключается в том, что вы можете легко убить туннель, набрав CTRL-C
.
Настройка удаленного туннелирования на сервер
СоединенияSSH могут использоваться для туннелирования трафика от портов локального хоста к портам удаленного хоста.
В удаленном туннеле устанавливается соединение с удаленным хостом. При создании туннеля указывается удаленный порт . Затем этот порт на удаленном хосте будет туннелирован на комбинацию хоста и порта, к которой подключено с локального компьютера.Это позволит удаленному компьютеру получить доступ к хосту через ваш локальный компьютер.
Это может быть полезно, если вам нужно разрешить доступ к внутренней сети, которая заблокирована для внешних подключений. Если брандмауэр разрешает подключения из сети, это позволит вам подключиться к удаленному компьютеру и туннелировать трафик с этого компьютера на место во внутренней сети.
Чтобы установить удаленный туннель к вашему удаленному серверу, вам необходимо использовать параметр -R
при подключении, и вы должны предоставить три части дополнительной информации:
- Порт, через который удаленный хост может получить доступ к туннельному соединению.
- Хост, к которому должен подключаться ваш локальный компьютер.
- Порт, к которому должен подключаться ваш локальный компьютер.
Они даются в указанном выше порядке (разделенные двоеточиями) в качестве аргументов для флага -R
. Мы также будем использовать флаг -f
, который заставляет SSH переходить в фоновый режим перед выполнением, и флаг -N
, который не открывает оболочку или не выполняет программу на удаленной стороне.
Например, чтобы подключиться к your_domain
через порт 80 на нашем локальном компьютере, сделав соединение доступным на нашем удаленном хосте через порт 8888
, вы можете ввести:
- ssh -f -N -R 8888: your_domain: 80 имя пользователя @ remote_host
Теперь на удаленном хосте открываем веб-браузер с номером 127.0.0.1: 8888
позволит вам увидеть, какой контент находится на your_domain
на порту 80
.
Более общее руководство по синтаксису:
- ssh -R remote_port: site_or_IP_to_access: site_port имя пользователя @ хост
Поскольку соединение находится в фоновом режиме, вам нужно будет найти его PID, чтобы его уничтожить. Вы можете сделать это, выполнив поиск по перенаправленному порту:
Выход
1001 5965 0.0 0,0 48168 1136? Ss 12:28 0:00 ssh -f -N -R 8888: your_domain: 80 имя пользователя @ remote_host
1001 6113 0,0 0,0 13648 952 точки / 2 S + 12:37 0:00 grep --colour = auto 8888
Затем вы можете убить процесс, указав PID, который является числом во втором столбце, строки, которая соответствует вашей команде SSH:
Другой вариант — запустить соединение без флага -f
. Это сохранит соединение на переднем плане, не позволяя вам использовать окно терминала во время пересылки.Преимущество этого заключается в том, что вы можете легко убить туннель, набрав CTRL-C
.
Настройка динамического туннелирования на удаленный сервер
СоединенияSSH могут использоваться для туннелирования трафика от портов локального хоста к портам удаленного хоста.
Динамический туннель похож на локальный туннель в том, что он позволяет локальному компьютеру подключаться к другим ресурсам с по удаленный хост. Динамический туннель делает это, просто указывая единственный локальный порт.Приложения, которые хотят использовать этот порт для туннелирования, должны иметь возможность взаимодействовать с использованием протокола SOCKS, чтобы пакеты могли быть правильно перенаправлены на другую сторону туннеля.
Трафик, передаваемый на этот локальный порт, будет отправлен на удаленный хост. Оттуда протокол SOCKS будет интерпретирован для установления соединения с желаемым конечным местоположением. Эта настройка позволяет приложению с поддержкой SOCKS подключаться к любому количеству местоположений через удаленный сервер без использования нескольких статических туннелей.
Чтобы установить соединение, мы передадим флаг -D
вместе с локальным портом, через который мы хотим получить доступ к туннелю. Мы также будем использовать флаг -f
, который заставляет SSH переходить в фоновый режим перед выполнением, и флаг -N
, который не открывает оболочку или не выполняет программу на удаленной стороне.
Например, чтобы установить туннель на порт 7777
, вы можете ввести:
- ssh -f -N -D 7777 имя пользователя @ remote_host
Отсюда вы можете начать указывать свое приложение с поддержкой SOCKS (например, веб-браузер) на выбранный вами порт.Приложение отправит свою информацию в сокет, связанный с портом.
Метод направления трафика на порт SOCKS будет отличаться в зависимости от приложения. Например, в Firefox общее расположение — «Настройки»> «Дополнительно»> «Настройки»> «Ручные настройки прокси». В Chrome вы можете запустить приложение с установленным флагом --proxy-server =
. Вы захотите использовать интерфейс localhost и перенаправленный порт.
Поскольку соединение находится в фоновом режиме, вам нужно будет найти его PID, чтобы его уничтожить.Вы можете сделать это, выполнив поиск по перенаправленному порту:
Выход
1001 5965 0,0 0,0 48168 1136? Ss 12:28 0:00 ssh -f -N -D 7777 имя пользователя @ удаленный_узел
1001 6113 0,0 0,0 13648 952 точки / 2 S + 12:37 0:00 grep --colour = auto 8888
Затем вы можете убить процесс, указав PID, который является числом во втором столбце, строки, которая соответствует вашей команде SSH:
Другой вариант — запустить соединение без флага -f
.Это сохранит соединение на переднем плане, не позволяя вам использовать окно терминала во время пересылки. Преимущество этого заключается в том, что вы можете легко убить туннель, набрав CTRL-C
.
Использование кодов выхода SSH для управления подключениями
Даже после установления сеанса SSH можно управлять подключением из терминала. Мы можем сделать это с помощью так называемых escape-кодов SSH, которые позволяют нам взаимодействовать с нашим локальным программным обеспечением SSH изнутри сеанса.
Принудительное отключение со стороны клиента (как выйти из зависшего или замороженного сеанса)
Одна из наиболее полезных функций OpenSSH, которая остается незамеченной, — это возможность контролировать определенные аспекты сеанса изнутри.
Эти команды могут выполняться, начиная с управляющего символа ~
в рамках сеанса SSH. Команды управления будут интерпретироваться только в том случае, если они будут вводиться в первую очередь после новой строки, поэтому всегда нажимайте ENTER один или два раза, прежде чем использовать ее.
Одним из наиболее полезных элементов управления является возможность отключения от клиента. Соединения SSH обычно закрываются сервером, но это может быть проблемой, если на сервере возникли проблемы или соединение было прервано. Используя отключение на стороне клиента, соединение может быть полностью закрыто от клиента.
Чтобы закрыть соединение от клиента, используйте управляющий символ ( ~
) с точкой. Если у вас возникли проблемы с подключением, скорее всего, вы застряли в сеансе терминала.Введите команды, несмотря на отсутствие обратной связи, чтобы выполнить отключение на стороне клиента:
Соединение должно немедленно закрыться, и вы вернетесь в локальный сеанс оболочки.
Размещение сеанса SSH в фоновом режиме
Одна из наиболее полезных функций OpenSSH, которая остается незамеченной, — это возможность контролировать определенные аспекты сеанса изнутри соединения.
Эти команды могут выполняться, начиная с управляющего символа ~
изнутри SSH-соединения.Команды управления будут интерпретироваться только в том случае, если они будут вводиться в первую очередь после новой строки, поэтому всегда нажимайте ENTER
один или два раза, прежде чем использовать ее.
Одной из возможностей, которые это предоставляет, является перевод сеанса SSH в фоновый режим. Для этого нам нужно указать управляющий символ ( ~
), а затем выполнить обычное сочетание клавиш для фоновой обработки задачи (CTRL-z):
Это переведет соединение в фоновый режим, возвращая вас в локальный сеанс оболочки.Чтобы вернуться к сеансу SSH, вы можете использовать обычные механизмы управления заданиями.
Вы можете немедленно повторно активировать последнюю фоновую задачу, набрав:
Если у вас есть несколько фоновых задач, вы можете просмотреть доступные вакансии, набрав:
Выход
[1] + имя пользователя ssh @ some_host остановлено
[2] Остановлено имя пользователя ssh @ another_host
Затем вы можете вывести любую из задач на передний план, используя индекс в первом столбце со знаком процента:
Изменение параметров переадресации портов в существующем соединении SSH
Одна из наиболее полезных функций OpenSSH, которая остается незамеченной, — это возможность контролировать определенные аспекты сеанса изнутри соединения.
Эти команды могут выполняться, начиная с управляющего символа ~
изнутри SSH-соединения. Команды управления будут интерпретироваться только в том случае, если они будут вводиться в первую очередь после новой строки, поэтому всегда нажимайте ENTER один или два раза, прежде чем использовать ее.
Это позволяет пользователю изменять конфигурацию переадресации портов после того, как соединение уже установлено. Это позволяет вам на лету создавать или отменять правила переадресации портов.
Эти возможности являются частью интерфейса командной строки SSH, доступ к которому можно получить во время сеанса с помощью управляющего символа ( ~
) и «C»:
SSH>
Вам будет предоставлена командная строка SSH с очень ограниченным набором допустимых команд. Чтобы увидеть доступные параметры, вы можете ввести в этом приглашении -h
. Если ничего не возвращается, возможно, вам придется увеличить подробность вывода SSH, используя несколько раз ~ v
:
Команды:
-L [bind_address:] порт: host: hostport Запросить локальную пересылку
-R [bind_address:] порт: host: hostport Запрос удаленной пересылки
-D [bind_address:] порт Запросить динамическую пересылку
-KL [bind_address:] порт Отменить локальную пересылку
-KR [bind_address:] порт Отменить удаленную пересылку
-KD [bind_address:] порт Отменить динамическую пересылку
Как видите, вы можете легко реализовать любую из опций переадресации, используя соответствующие опции (см. Раздел переадресации для получения дополнительной информации).Вы также можете уничтожить туннель с помощью связанной команды «kill», указанной с буквой «K» перед буквой типа пересылки. Например, чтобы убить локального переадресации ( -L
), вы можете использовать команду -KL
. Для этого вам нужно будет только указать порт.
Итак, чтобы настроить переадресацию локального порта, вы можете ввести:
- [ВВОД]
- ~ С
- -L 8888: 127.0.0.1: 80
Порт 8888
на вашем локальном компьютере теперь сможет связываться с веб-сервером на хосте, к которому вы подключаетесь.Когда вы закончите, вы можете разорвать его, набрав:
Заключение
Приведенные выше инструкции должны охватывать большую часть информации, которая будет нужна большинству пользователей о SSH на повседневной основе. Если у вас есть другие советы или вы хотите поделиться своими любимыми конфигурациями и методами, не стесняйтесь использовать комментарии ниже.
Подключение через SSH к вашему серверу
Введение
Secure Shell (SSH) — это командный интерфейс и протокол на основе UNIX для безопасного доступа к удаленному компьютеру.SSH на самом деле представляет собой набор из трех утилит — slogin, ssh и scp — которые являются безопасными версиями более ранних утилит UNIX, rlogin, rsh и rcp. Команды SSH зашифрованы и защищены несколькими способами. Оба конца соединения клиент / сервер аутентифицируются с помощью цифрового сертификата, а пароли защищены за счет шифрования.
Короче говоря, SSH позволяет вам безопасно подключаться к вашему серверу для выполнения операций командной строки Linux. И хотя вы будете запускать команды Linux, SSH по-прежнему можно выполнять с компьютеров Windows , Mac или Linux .
Требования
Чтобы начать работу, посетите Руководство по серверу в Центре учетных записей и убедитесь, что у вас есть следующая информация:
- IP-адрес вашего сервера
ПРИМЕЧАНИЕ:
Если DNS настроен для домена, который вы размещаете, вы можете использовать домен вместо IP-адреса.
- Ваше имя пользователя и пароль SSH
Установить пароль root
При первом подключении к серверу вам нужно будет установить пароль root в Центре учетных записей.
- Войдите в свой Account Center.
- Щелкните свой основной домен.
- Щелкните SSH Access.
- Нажмите на опцию, чтобы установить пароль root.
- Дважды введите новый пароль и сохраните изменения.
Включение SSH
Ваши учетные данные cPanel также являются вашими основными учетными данными FTP и SSH. Однако вам нужно будет включить доступ по SSH, прежде чем вы сможете подключаться через SSH или SFTP.
- Войдите в свою учетную запись Media Temple.
- Нажмите кнопку ADMIN , связанную с вашим сервером общего хостинга.
- В разделе «Настройки » выберите «» и выберите «Сервер ».
- В разделе доступа по SSH щелкните Управление .
- Установите для параметра SSH значение Включено .
Видео
Посмотрите это видео, чтобы узнать, как подключиться к вашей сети через SSH.
Инструкции
Включение доступа по SSH
По соображениям безопасности ваша сеть поставляется с отключенным по умолчанию доступом по SSH.Вот инструкции по включению доступа по SSH:
- Войдите в свой центр учетных записей и щелкните свой основной домен.
- Щелкните «Администратор сервера».
- Установите для параметра SSH значение «Включено» и нажмите «Сохранить».
ПРИМЕЧАНИЕ:
Этот параметр включает SSH только для администратора сервера. Это единственный пользователь Grid SSH с широкими полномочиями.
Инструкции
Включение или отключение доступа по SSH
- Войдите в свою учетную запись Media Temple.
- Нажмите кнопку ADMIN , связанную с вашим управляемым сервером WordPress.
- Щелкните вкладку Настройки .
- Щелкните Показать еще .
- Найдите SSH и выберите ползунок.
Для WordPress Premium / Managed WordPress Personal, Pro и Elite:
1. Войдите в свой центр учетных записей и войдите в управляемую панель управления WordPress.
2.Нажмите «Управление сайтом» для сайта, для которого вы хотите разрешить доступ.
3. В меню Мой сайт найдите панель SSH + SFTP и убедитесь, что SSH Access включен.
Инструкции
Включить доступ по SSH
На выделенных виртуальных серверах DV и DV у вас есть несколько возможных пользователей SSH. Выберите подходящий для себя.
SSH для пользователя root
Для задач высокоуровневой настройки и администрирования сервера вы можете разрешить пользователю root для своего сервера.Этот пользователь может изменять абсолютно все, поэтому убедитесь, что вы используете его с умом. См. Инструкции в разделе «Включение корневого доступа».
SSH с использованием sudo
Для задач высокого уровня в сочетании с повышенной безопасностью вместо этого можно настроить пользователя sudo . Этот пользователь обычно работает как пользователь нижнего уровня, но при необходимости может выполнять те же задачи, что и root . См. Как отключить доступ по SSH для пользователя root? для дополнительной информации.
Для всех примеров, относящихся к пользователю root , пользователь sudo может сделать то же самое, добавив sudo перед остальной частью команды.Вам будет предложено ввести пароль root, после чего команда будет выполнена.
Пример корневой команды:
верх
Та же команда для пользователя sudo:
верхняя часть судо
Выберите SSH-клиент
Сначала вам нужно выбрать клиента SSH.
- Mac OS X по умолчанию включает клиент SSH Терминал .
- Операционные системы на базе Windows по умолчанию не поставляются с клиентом SSH.Мы рекомендуем PuTTY . Для получения информации см .: Использование SSH в PuTTY (Windows).
- Linux дистрибутивы также включают поддержку SSH по умолчанию. Просто запустите терминал.
Учетные данные для входа
Вы должны использовать следующую информацию для входа на сервер через SSH (замените 00000 на номер вашего сайта):
- Сервер: s00000.gridserver.com
- Имя пользователя: имя пользователя администратора вашего сервера (пример.com)
- Пароль: это то же самое, что и ваш пароль администратора сервера FTP. Прочтите эту статью, если вам нужно сбросить этот пароль.
Вы должны использовать следующую информацию для входа на сервер через SSH (замените example.com на доменное имя, которое разрешается для вашего сервера):
- Сервер: example.com или ваш IP-адрес
- Имя пользователя: это зависит от того, какого пользователя вы выбрали для включения. Имя пользователя root — это всего лишь root . Пользователь FTP вашего домена или другой пользователь sudo будет иметь собственное имя в зависимости от того, что вы ввели при создании пользователя.
- Пароль: это зависит от того, какого пользователя вы выбрали для включения. В статьях root и sudo выше показано, как установить пароль для этих пользователей. У пользователя FTP домена будет тот же пароль, который вы используете для FTP.
Вы должны использовать следующую информацию для входа на сервер через SSH (замените example.com на доменное имя, которое разрешается для вашего сервера):
- Имя хоста: IP-адрес сервера или ваше доменное имя (example.com)
- Имя пользователя: ваше имя пользователя cPanel (также известное как ваше основное имя пользователя FTP).
- Пароль: ваш пароль cPanel (также ваш основной пароль FTP).
Подключение к серверу
Если вы новичок в интерфейсах командной строки, вы можете сначала ознакомиться с некоторыми командами.
Обычно после каждой команды нажимают «Enter», чтобы выполнить ее после того, как вы закончите вводить текст.
- Откройте свой SSH-клиент.
- Чтобы инициировать соединение, введите:
ssh имя пользователя@xxx.xxx.xxx.xxx
- Чтобы инициировать соединение, введите:
имя пользователя ssh @ имя хоста
- Тип:
ssh [email protected]
ssh [email protected]
ПРИМЕЧАНИЕ:
Если вы пытаетесь подключиться в качестве пользователя суб-FTP в Grid, вы захотите использовать следующий контекст команды:
Пример ssh subftpuser%[email protected]
В данном случае имя пользователя — это полный адрес электронной почты. Но вам нужно будет заменить символ @ в адресе электронной почты на%, чтобы убедиться, что команда работает.
Имя пользователя: subftpuser% example.com
Пароль: такой же, как ваш пароль электронной почты. - Убедитесь, что вы используете собственное доменное имя или IP-адрес. Если вам нужен другой пользователь, кроме root, введите другое имя пользователя перед символом @.
Тип:
ssh [email protected]
ssh root @ 70.32,86,175
ssh [email protected]
- Обязательно замените xxx.xxx.xxx.xxx на IP-адрес вашего сервера. Тип:
ssh [email protected]
- Если вы впервые подключаетесь к серверу с этого компьютера, вы увидите следующий результат. Подтвердите подключение, набрав «да».
Подлинность хоста example.com (12.33.45.678) не может быть установлена.Отпечаток ключа RSA: 3c: 6d: 5c: 99: 5d: b5: c6: 25: 5a: d3: 78: 8e: d2: f5: 7a: 01. Вы уверены, что хотите продолжить подключение (да / нет)?
да
- Теперь вам будет предложено ввести пароль. Обратите внимание, что при вводе пароля вы НЕ увидите перемещения курсора или введенных символов (например, ******). Это стандартная функция безопасности Терминала. Нажмите Enter.
- Вы также можете копировать и вставлять, используя Command + V для вставки.
Пароль:
- Вот и все, теперь вы подключены к своей управляемой службе WordPress через SSH.
- Теперь вы вошли в свою сеть через SSH. Вы должны увидеть такой результат:
Программы, входящие в состав системы Debian GNU / Linux, являются бесплатными; точные условия распространения для каждой программы описаны в отдельные файлы в / usr / share / doc / * / copyright. Debian GNU / Linux поставляется СОВЕРШЕННО БЕЗ ГАРАНТИЙ в той степени, в которой разрешено действующим законодательством. example.com@n11: ~ $
Вы можете начать вводить команды в приглашении.
- Теперь вы вошли на свой сервер через SSH.Вы должны увидеть такой результат:
Последний вход: Вт 25 янв 15:43:16 2011 от 12.33.45.678 ########################################################################## ########## (mt) ярлыки ########################################################################## ########## Чтобы увидеть свой пароль Plesk, введите: p Чтобы перестроить конфигурацию Apache / Web Server, введите: web Чтобы перестроить конфигурацию Qmail / Mail Server, введите: mchk Чтобы увидеть очередь Qmail / Mail Server, введите: q Чтобы полностью перезапустить ваш Qmail / почтовый сервер, введите: r Чтобы подключиться к серверу MySQL в качестве администратора, введите: my Чтобы избавиться от этих сообщений / псевдонимов, отредактируйте ваш / root /.bash_profile [корень @ текущий ~] #
Вы можете начать вводить команды в приглашении.
- Результат будет примерно таким:
Программы, входящие в состав системы Debian GNU / Linux, являются бесплатными; точные условия распространения для каждой программы описаны в отдельные файлы в / usr / share / doc / * / copyright. Debian GNU / Linux поставляется СОВЕРШЕННО БЕЗ ГАРАНТИЙ в той степени, в которой разрешено действующим законодательством. корень @ XX: ~ $
Вы можете начать вводить команды в приглашении.
- После подключения вы можете начинать вводить команды в приглашении.
Ресурсы
Как использовать SSH (Secure Shell) для доступа к учетной записи
В этой статье описывается, как безопасно подключиться к своей учетной записи хостинга A2 с помощью SSH.
Что такое доступ по SSH и зачем вам его использовать?
Secure Shell (SSH) — это протокол, который обеспечивает безопасный доступ из командной строки к вашей учетной записи хостинга A2. Используя SSH, вы можете удаленно входить в свою учетную запись хостинга A2 и запускать команды, как если бы вы сидели прямо за сервером.Обратите внимание, что SSH — единственный протокол, который поддерживает хостинг A2.
Благодаря упрощенному интерфейсу командная строка позволяет выполнять задачи с помощью текстовых команд. Вы также обнаружите, что SSH — это экономящее время решение, которое в конечном итоге может помочь ускорить многие задачи. Вы также можете выполнять задачи, которые нельзя выполнить с помощью панели управления хостингом, включенной в ваш аккаунт.
Как работает SSH
SSH-соединение действительно так же просто, как создание безопасного соединения между двумя компьютерами.SSH может обеспечить безопасное зашифрованное соединение между клиентом и сервером через этот зашифрованный туннель. Отсюда вы можете легко передавать файлы между подключенными компьютерами или запускать программы и команды, которые в противном случае потребовали бы более сложных решений для совместного использования экрана. Это как если бы вы были прямо перед своим сервером, в центре обработки данных, где он расположен.
Что нужно для создания SSH-соединения
Так же, как вам нужен FTP-клиент для управления файлами с помощью FTP, вам необходимо установить SSH-клиент на свой компьютер, чтобы установить SSH-соединение.Putty и WinSCP — популярные решения SSH для пользователей Windows. И Linux, и macOS имеют встроенные терминалы, поэтому нет необходимости загружать SSH-клиент. Наши пошаговые инструкции по доступу к учетной записи SSH, изложенные ниже, помогут вам получить удаленный доступ к вашей учетной записи.
Где найти подробную информацию о SSH-соединении?
Чтобы найти эту информацию, сначала войдите на Портал клиентов хостинга A2. Его можно найти по адресу:
.https://my.a2hosting.com/
Щелкните свой план, который находится под оранжевым разделом Ваши активные продукты / услуги , как показано на снимке экрана ниже:
Щелкните в любом месте вашего пакета.Вы попадете на страницу Управление . Страница управления содержит всю техническую информацию, необходимую для SSH, такую как ваш IP-адрес , ваш SSH-порт , ваше имя пользователя и ваш пароль :
Дополнительные сведения об использовании портала для клиентов см. В этих статьях.
Как использовать SSH-клиент
Следуйте процедуре, описанной ниже для операционной системы вашего компьютера.
Операционные системы Windows
Можно использовать любой клиент SSH, но для целей этой демонстрации мы будем использовать PuTTY, который вы можете скачать здесь. Чтобы подключиться к своей учетной записи с помощью PuTTY, выполните следующие действия:
- Запустить PuTTY.
- В текстовом поле Имя хоста (или IP-адрес) введите имя хоста или IP-адрес сервера, на котором находится ваша учетная запись.
- В текстовом поле Порт введите 7822.
A2 не использует порт 22 SSH по умолчанию.Пожалуйста, подключитесь по SSH к порту 7822.
- Убедитесь, что для радиокнопки Тип подключения установлено значение SSH.
- Щелкните «Открыть».
- Предупреждение системы безопасности PuTTY о ключе хоста сервера появляется при первом подключении. Щелкните Да.
- Введите имя пользователя вашей учетной записи, когда будет предложено, а затем нажмите Введите .
- Введите пароль своей учетной записи, когда будет предложено, и затем нажмите Введите .
По соображениям безопасности при вводе пароля в терминале не отображаются символы.
- Когда появляется приглашение командной строки удаленного сервера, вы подключены. Начальная строка командной строки:
[адрес электронной почты защищен] [~] #
- Теперь вы можете запускать команды. Например, чтобы увидеть список текущего каталога, введите ls и нажмите Enter.
- Чтобы закрыть соединение SSH, когда вы закончите, введите exit и нажмите Enter.
Операционные системы macOS и Linux
И macOS, и Linux включают клиентов SSH, поэтому подключиться к вашей учетной записи хостинга A2 в этих операционных системах очень просто.Вам не нужно скачивать специальный клиент.
Чтобы подключиться к своей учетной записи, выполните следующие действия:
- Открыть окно терминала. Порядок действий зависит от операционной системы и среды рабочего стола.
- В macOS щелкните «Приложения», щелкните «Утилиты», а затем щелкните «Терминал».
В командной строке введите следующую команду. Замените имя пользователя своим именем пользователя хостинга A2, а example.com — доменным именем вашего сайта:
ssh -p 7822 username @ example.com
A2 не использует порт SSH по умолчанию 22. Пожалуйста, подключитесь к порту 7822 по SSH.
Введите свой пароль, когда вам будет предложено сделать это.
По соображениям безопасности при вводе пароля в терминале не отображаются символы.
Когда появится приглашение командной строки удаленного сервера, вы подключены. Начальная строка командной строки:
[электронная почта защищена] [~] #
- Теперь вы можете запускать команды. Например, чтобы просмотреть список текущего каталога, введите ls и нажмите , введите .
Чтобы закрыть соединение SSH, когда вы закончите, введите exit и затем нажмите Введите .
В команде на шаге 2 мы явно указываем номер порта, имя пользователя и имя хоста. Однако вы также можете определить эти параметры для удаленного хоста в файле ~ / .ssh / config следующим образом:
Хост , пример Имя хоста example.com Порт 7822 Пользователь имя пользователя
Значение Host может иметь любое имя; это просто ярлык для других настроек.Значение Hostname — это удаленный хост, к которому вы хотите получить доступ, номер порта — 7822, а значение User указывает имя пользователя вашей учетной записи хостинга A2. Определив эту конфигурацию, вы можете подключиться к учетной записи, просто используя значение Host . Вам не нужно каждый раз вводить номер порта, имя пользователя и имя хоста. Следующая команда демонстрирует, как это сделать:
пример ssh
Следующие шаги
Теперь, когда вы успешно вошли в SSH, вы можете развернуть ключи SSH в своей учетной записи.В A2 Hosting есть статья «Как получить доступ к вашей учетной записи с помощью ключей SSH», в которой вы узнаете, как это сделать. В другой заметной статье «Как настроить ключи SSH с помощью cPanel» показано, как развертывать ключи SSH с помощью cPanel. При использовании SSH возможности безграничны.
Если вам нужна помощь или у вас есть вопрос относительно настройки SSH, откройте тикет на портале для клиентов по адресу https://my.a2hosting.com, и один из наших Guru Crew будет рад вам помочь.
Как использовать ключи SSH для аутентификации — Урок
Настройте свои первые ключи SSH
Используйте ключи SSH для аутентификации при подключении к серверу или даже между серверами.Они могут значительно упростить и повысить безопасность вашего процесса входа в систему. Когда ключи реализованы правильно, они обеспечивают безопасный, быстрый и простой способ доступа к вашему облачному серверу.
Следуйте нашему руководству и узнайте, как настроить свои первые ключи SSH для аутентификации с помощью OpenSSH или PuTTYTray.
Тестовый хостинг на UpCloud!
Подготовка сервера
Чтобы добавить пару ключей SSH, сначала создайте скрытую папку в домашнем каталоге вашей учетной записи на облачном сервере с помощью следующей команды.
мкдир -p ~ / .ssh
Затем ограничьте права доступа к этому каталогу только себе с помощью приведенной ниже команды.
chmod 700 ~ / .ssh
Это создает безопасное место для сохранения ключей SSH для аутентификации. Однако обратите внимание, что, поскольку ключи хранятся в домашнем каталоге вашего пользователя, каждый пользователь, который хочет подключиться с использованием ключей SSH для аутентификации, должен повторить эти шаги в своем собственном профиле.
Использование OpenSSH для создания пары ключей
Теперь продолжайте на своем компьютере, если вы используете Linux или любую другую ОС с OpenSSH.Пользователи PuTTY должны перейти к следующему разделу.
1. Создайте новую пару ключей в терминале с помощью следующей команды
ssh-keygen -t rsa
Генератор ключей запросит местоположение и имя файла, в котором будет сохранен ключ. Введите новое имя или используйте имя по умолчанию, нажав клавишу ВВОД.
2. (Необязательно) Создайте парольную фразу для ключа при появлении запроса
Это простой пароль, который защитит ваш закрытый ключ, если кто-то сможет получить его.Введите желаемый пароль или продолжайте без пароля. Дважды нажмите Enter. Обратите внимание, что некоторые инструменты автоматизации могут не разблокировать закрытые ключи, защищенные парольной фразой.
3. Скопируйте общедоступную половину пары ключей на свой облачный сервер с помощью следующей команды
Замените пользователя и сервер своим именем пользователя и адресом сервера, на котором вы хотите использовать ключевую аутентификацию.
ssh-copy-id -i ~ / .ssh / id_rsa.pub пользователь @ сервер
Также предполагается, что вы сохранили пару ключей, используя имя и расположение файла по умолчанию.Если нет, просто замените указанный выше путь ключа ~ / .ssh / id_rsa.pub своим собственным именем ключа.
При появлении запроса введите пароль своей учетной записи для этого SSH-сервера.
Теперь вы можете аутентифицироваться на своем сервере с помощью пары ключей, но на данный момент вам нужно будет вводить парольную фразу при каждом подключении.
4. (Необязательно) Настройте агент SSH для хранения ключей, чтобы избежать повторного ввода ключевой фразы при каждом входе в систему.
Введите следующие команды, чтобы запустить агент и добавить закрытый ключ SSH.
ssh-агент $ BASH ssh-add ~ / .ssh / id_rsa
Введите текущую парольную фразу, когда вас попросят. Если вы сохранили закрытый ключ в другом месте, кроме местоположения и имени по умолчанию, вам нужно будет указать его при добавлении ключа.
После этого вы можете подключиться к своему облачному серверу, используя ключи для аутентификации, и вам нужно будет только разблокировать ключ, повторяя последние 2 шага один раз после каждой перезагрузки компьютера.
Использование PuTTYTray для создания пары ключей
Если вы используете Windows и PuTTYTray для SSH, вы можете использовать встроенный генератор ключей из PuTTY для создания новой пары ключей.
1. Нажмите кнопку Keygen в нижней части окна Конфигурация PuTTY, чтобы начать работу.
Затем в окне генератора ключей убедитесь, что тип ключа для генерации внизу установлен на SSH-2 RSA . Старая версия SSH-1 была первой версией стандарта, но сейчас считается устаревшей. Большинство современных серверов и клиентов поддерживают SSH-2.
2. Чтобы начать, нажмите кнопку Создать .
3. Продолжайте перемещать указатель мыши над пустой областью любым способом, чтобы генерировать случайность в течение нескольких секунд, пока процесс не будет завершен.
Когда ключи закончены, PuTTY покажет относительную информацию о паре вместе с открытым ключом для облегчения копирования.
4. (Необязательно) Введите ключевую парольную фразу в 2 пустых поля для дополнительной защиты перед продолжением. Кодовая фраза защитит ваш ключ от несанкционированного использования, если кто-то сможет его скопировать.Однако некоторые инструменты автоматизации могут быть не в состоянии разблокировать закрытые ключи, защищенные парольной фразой.
5. Нажмите кнопку Сохранить закрытый ключ кнопку и сохраните его в надежном месте. Как правило, любое место в вашем пользовательском каталоге нормально, если ваш компьютер защищен паролем. Перед закрытием кейгена вы можете скопировать открытый ключ в буфер обмена, но вы всегда можете получить его и позже.
Теперь, когда у вас есть новый ключ, сохраненный на вашем компьютере, вам нужно импортировать его в агент ключей PuTTY.
6. Нажмите кнопку Agent , чтобы открыть диспетчер ключей в окне конфигурации PuTTY.
7. Нажмите Добавить ключ кнопку в Списке ключей, затем перейдите к месту, где вы сохранили закрытый ключ, выберите его и нажмите Открыть .
Введите ключевую фразу-пароль, если ее спросят.
Это импортирует ключ в ваш клиент PuTTY, но вам все равно нужно скопировать открытый ключ на свой сервер.
8. Откройте SSH-соединение с облачным сервером и перейдите в каталог ключей SSH.
кд ~ / .ssh /
9. Откройте или создайте файл по умолчанию. OpenSSH ищет открытые ключи с именем authorized_keys.
sudo nano authorized_keys
10. Вставьте открытый ключ в файл , просто щелкнув правой кнопкой мыши окно клиента SSH. Убедитесь, что ключ находится в одной строке, чтобы OpenSSH мог его прочитать. Обратите внимание, что также необходимо указать тип ключа ssh-rsa, как показано в примере ниже.
SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABgQDEeV / UKOVqNUwmED8PO1E6wY3ITEbWx30rAgGudzTGnYI8fB176nlmIS + O01vaI4fMYwO9Chg3mzVT2 + 4AkTBm1sXnDdzhNNnkclipMXdmAHnRtzU9kREFZU0 / yyOhorzqxWBi0LQxpjTAZawi + 8ysH7PGnNlX3FUObZcmHis0oD / C7ll6DwX4WVSjh3JGcaIhbhB + sovxW5duTDqyuyKpRsbyBD0 + wNjSuJFjh5MnXJqcqrEUaPRoe2wQ9k7q0K2KOXAmYYPUWrLY6N + jjYdnkyP9XWWkz6c7Qvx7m / dBfgpyJbPryWbSZ8PsvSgtDTIND / jNfwmgQjOCGgsZlmCsvRIixzh3uNmFCg75wyD6f / wdZ5gq1HPFdyLblHs46P9ClfMbWJt9APx7c1SRE + qMbdLf / 5 / vNGiGHr6bBXKRX70 + XODl04shFQpjm1kKkG9qHkp3bOSot4Da987dRHMhAbd0d3QdS8wCg7s6NPk4qDVnR6BCxiM2vbOD1B4gWQ8 = [электронная почта защищена]
Когда вы скопировали открытый ключ в список авторизованных ключей, сохраните файл и выйдите из редактора.Теперь вы можете протестировать аутентификацию с открытым ключом, снова войдя на свой сервер. Вам не следует запрашивать пароль, вместо этого вы должны войти в систему с помощью ключа. Если он не работает, убедитесь, что ваш закрытый ключ разблокирован в вашем SSH-агенте, и повторите попытку.
Отключить аутентификацию по паролю
После настройки и тестирования аутентификации по ключу SSH вы можете полностью отключить аутентификацию по паролю для SSH, чтобы предотвратить перебор. При входе на свой облачный сервер.
1. Откройте файл конфигурации SSH с помощью следующей команды.
Судо Нано / и т. Д. / SSH / sshd_config
2. Установите аутентификацию по паролю на № , чтобы отключить пароли в виде открытого текста.
Пароль Аутентификация №
3. Убедитесь, что аутентификация с открытым ключом включена , чтобы быть в безопасности и не блокироваться на вашем сервере. Если вы не можете войти в систему с помощью SSH, вы всегда можете использовать веб-терминал на панели управления UpCloud.
Pubkey Аутентификация да
Затем сохраните и выйдите из редактора.
4. Перезапустите службу SSH , чтобы применить изменения, используя команду ниже.
sudo systemctl перезапуск sshd
После этого ваш облачный сервер стал еще одним шагом на пути к безопасности. Вредоносные попытки подключиться к вашему серверу приведут к отказу в аутентификации, так как простые пароли не разрешены, а подобрать ключ RSA практически невозможно.
Выводы
Не забывайте всегда хранить свои закрытые ключи в безопасности.Вы можете использовать один и тот же ключ с нескольких компьютеров, если хотите, или сгенерировать новые для каждого клиента, подключающегося к вашему облачному серверу, для дополнительной безопасности. Каждый пользователь должен создать свою собственную пару ключей и кодовую фразу для безопасного управления доступом. При правильном управлении даже в случае взлома одного из закрытых ключей вам не придется заменять их все.
Команда SSH | Linuxize
Secure Shell (SSH) — это криптографический сетевой протокол, используемый для зашифрованного соединения между клиентом и сервером.Клиент ssh создает безопасное соединение с сервером SSH на удаленном компьютере. Зашифрованное соединение можно использовать для выполнения команд на сервере, туннелирования X11, переадресации портов и т. Д.
Доступен ряд клиентов SSH, как бесплатных, так и коммерческих, причем OpenSSH является наиболее широко используемым клиентом. Он доступен на всех основных платформах, включая Linux, OpenBSD, Windows и macOS.
В этой статье объясняется, как использовать клиент командной строки OpenSSH ( ssh
) для входа на удаленный компьютер и выполнения команд или других операций.
Установка клиента OpenSSH #
Клиентская программа OpenSSH называется ssh
и может быть запущена с терминала. Клиентский пакет OpenSSH также предоставляет другие утилиты SSH, такие как scp
и sftp
, которые устанавливаются вместе с командой ssh
.
Установка клиента OpenSSH в Linux #
Клиент OpenSSH предустановлен в большинстве дистрибутивов Linux по умолчанию. Если в вашей системе не установлен клиент ssh, вы можете установить его с помощью диспетчера пакетов распространения.
Установка OpenSSH в Ubuntu и Debian #
sudo apt update
sudo apt install openssh-client
Установка OpenSSH на CentOS и Fedora #
sudo dnf install openssh-clients
Установка клиента Windows 10 #
Большинство пользователей Windows используют Putty для подключения к удаленному компьютеру через SSH. Однако последние версии Windows 10 включают клиент и сервер OpenSSH. Оба пакета можно установить через графический интерфейс или PowerShell.
Чтобы узнать точное имя пакета OpenSSH, введите следующую команду:
Get-WindowsCapability -Online | ? Имя - вроде 'OpenSSH *'
Команда должна вернуть примерно следующее:
Имя: OpenSSH.Client ~~~~ 0.0.1.0
Состояние: NotPresent
Имя: OpenSSH.Server ~~~~ 0.0.1.0
Состояние: NotPresent
Как только вы узнаете имя пакета, установите его, запустив:
Add-WindowsCapability -Online -Name OpenSSH.Server ~~~~ 0.0.1.0
В случае успеха результат будет выглядеть примерно так:
Путь:
Онлайн: Верно
RestartNeeded: False
Установка клиента OpenSSH на macOS #
macOS поставляется с клиентом OpenSSH, установленным по умолчанию.
Как использовать команду
ssh
#Для возможности входа на удаленную машину через SSH должны быть выполнены следующие требования:
- На удаленной машине должен быть запущен SSH-сервер.
- Порт SSH должен быть открыт в брандмауэре удаленного компьютера.
- Вы должны знать имя пользователя и пароль удаленной учетной записи. Учетная запись должна иметь соответствующие права для удаленного входа в систему.
Основной синтаксис команды ssh
выглядит следующим образом:
ssh [ОПЦИИ] [ПОЛЬЗОВАТЕЛЬ @]: HOST
Чтобы использовать команду ssh
, откройте терминал или PowerShell и введите ssh
, а затем имя удаленного хоста:
ssh ssh.linuxize.com
Когда вы впервые подключаетесь к удаленному компьютеру через SSH, вы увидите сообщение, подобное приведенному ниже.
Не удается установить подлинность хоста ssh.linuxize.com (192.168.121.111).
Отпечаток ключа ECDSA - SHA256: Vybt22mVXuNuB5unE ++ yowF7lgA / 9 / 2bLSiO3qmYWBY.
Вы уверены, что хотите продолжить подключение (да / нет)?
У каждого хоста есть уникальный отпечаток, который хранится в файле ~ / .ssh / known_hosts
.
Введите yes
, чтобы сохранить удаленный отпечаток пальца, и вам будет предложено ввести пароль.
Предупреждение: «ssh.linuxize.com» (ECDSA) постоянно добавлен в список известных хостов.
[email protected] пароль:
После ввода пароля вы войдете в удаленную машину.
Если имя пользователя не указано, команда ssh
использует текущее имя входа в систему.
Чтобы войти в систему как другой пользователь, укажите имя пользователя и хост в следующем формате:
ssh имя пользователя @ имя хоста
Имя пользователя также можно указать с помощью опции -l
:
ssh - l имя пользователя hostname
По умолчанию, когда порт не указан, клиент SSH будет пытаться подключиться к удаленному серверу через порт 22.На некоторых серверах администраторы меняют порт SSH по умолчанию, чтобы добавить серверу дополнительный уровень безопасности за счет снижения риска автоматических атак.
Для подключения к порту, отличному от порта по умолчанию, используйте параметр -p
, чтобы указать порт:
ssh -p 5522 username @ hostname
Если у вас возникли проблемы с аутентификацией или подключением, используйте -v Параметр
, указывающий ssh
на печать отладочных сообщений:
ssh -v username @ hostname
Чтобы повысить уровень детализации, используйте -vv
или -vvv
.
Команда ssh
принимает ряд параметров.
Для получения полного списка всех опций прочтите справочную страницу ssh
, набрав в терминале man ssh
.
Файл конфигурации SSH №
Если вы подключаетесь к нескольким удаленным системам через SSH ежедневно, вы обнаружите, что запоминание всех удаленных IP-адресов, различных имен пользователей, нестандартных портов и различных параметров командной строки сложно, если не невозможно.
Клиент OpenSSH считывает параметры, заданные в файле конфигурации для каждого пользователя ( ~ /.ssh / config
). В этом файле вы можете хранить различные параметры SSH для каждой удаленной машины, к которой вы подключаетесь.
Пример конфигурации SSH показан ниже:
Host dev
HostName dev.linuxize.com
Пользователь Майк
Порт 4422
Когда вы вызываете ssh-клиент, набирая ssh dev
, команда считывает файл ~ / .ssh / config
и использует данные подключения, указанные для хоста dev. В этом примере ssh dev
эквивалентно следующему:
ssh -p 4422 mike @ dev.linuxize.com
Дополнительные сведения см. в статье о файле конфигурации SSH.
Аутентификация с открытым ключом #
Протокол SSH поддерживает различные механизмы аутентификации.
Механизм аутентификации на основе открытого ключа позволяет вам войти на удаленный сервер без ввода пароля.
Этот метод работает путем создания пары криптографических ключей, которые используются для аутентификации. Закрытый ключ хранится на клиентском устройстве, а открытый ключ передается на каждый удаленный сервер, на который вы хотите войти.Удаленный сервер должен быть настроен на прием аутентификации по ключу.
Если у вас еще нет пары ключей SSH на вашем локальном компьютере, вы можете сгенерировать ее, набрав:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
. вас попросят ввести безопасную парольную фразу. Независимо от того, хотите ли вы использовать кодовую фразу, решать вам.
Получив пару ключей, скопируйте открытый ключ на удаленный сервер:
ssh-copy-id имя пользователя @ имя хоста
Введите пароль удаленного пользователя, и открытый ключ будет добавлен к удаленному пользователю authorized_keys
файл.
После загрузки ключа вы можете войти на удаленный сервер без запроса пароля.
Установив аутентификацию на основе ключей, вы можете упростить процесс входа в систему и повысить общую безопасность сервера.
Перенаправление портов #
SSH-туннелирование или перенаправление портов SSH — это метод создания зашифрованного SSH-соединения между клиентом и сервером, через которое могут ретранслироваться порты служб.
SSH-пересылка полезна для передачи сетевых данных служб, использующих незашифрованный протокол, например VNC или FTP, доступа к контенту с географическим ограничением или обхода промежуточных межсетевых экранов.По сути, вы можете перенаправить любой TCP-порт и туннелировать трафик через безопасное соединение SSH.
Существует три типа перенаправления порта SSH:
Перенаправление локального порта #
Перенаправление локального порта позволяет вам перенаправить соединение с клиентского хоста на хост-сервер SSH, а затем на порт хоста назначения.
Чтобы создать перенаправление локального порта, передайте опцию -L
клиенту ssh
:
ssh -L [LOCAL_IP:] LOCAL_PORT: DESTINATION_HOST: DESTINATION_PORT -N -f username @ hostname
The — Параметр f указывает команде ssh
работать в фоновом режиме, а -N
— не выполнять удаленную команду.
Перенаправление удаленного порта #
Перенаправление удаленного порта — это противоположность перенаправления локального порта. Он перенаправляет порт от хоста сервера к хосту клиента, а затем к порту хоста назначения.
Параметр -L
указывает ssh
создать переадресацию удаленного порта:
ssh -R [REMOTE:] REMOTE_PORT: DESTINATION: DESTINATION_PORT -N -f username @ hostname
Dynamic Port Forwarding #
Dynamic Port Forwarding # Динамическая переадресация портов создает прокси-сервер SOCKS, который обеспечивает связь через диапазон портов. Для создания динамической переадресации портов (SOCKS) передайте опцию -D
клиенту ssh:
ssh -D [LOCAL_IP:] LOCAL_PORT -N -f username @ hostname
Для получения более подробной информации и шага Пошаговая инструкция, смотрите статью Как настроить SSH-туннелирование (перенаправление портов).
Заключение №
Чтобы подключиться к удаленному серверу через SSH, используйте команду ssh
, за которой следует удаленное имя пользователя и имя хоста ( ssh username @ hostname
).
Знание того, как использовать команду ssh
, необходимо для управления удаленными серверами.
Если у вас есть вопросы, оставьте комментарий ниже.
Как подключиться к вашему серверу через Secure Shell (SSH)
Secure Shell (SSH) — это широко используемый протокол для получения удаленного доступа через интерфейс командной строки. Администраторы с расширенными знаниями могут использовать SSH для входа на веб-сервер и выполнения таких задач, как передача файлов и папок, проверка использования диска и мониторинг производительности, используя такие команды, как (верх ).
Преимущество использования SSH по сравнению с другими методами удаленного доступа состоит в том, что, как следует из названия, обмен данными надежно зашифрован, что защищает трафик, идущий на сервер и с него. Данные зашифрованы на обоих концах соединения клиент / сервер с использованием цифрового сертификата безопасности, а учетные данные для доступа также защищены.
Подключитесь к вашему серверу с помощью SSH
Вы можете использовать SSH для подключения к вашему серверу с компьютеров Windows, Mac OS и Linux с помощью клиентов командной строки.Mac OS и Linux интегрировали поддержку SSH в терминал — вы можете просто открыть окно терминала и начать работу.
Однако приложение командной строки Windows не поддерживает SSH по умолчанию. Мы рекомендуем загрузить стороннее приложение, такое как PuTTY, которое включает поддержку SSH.
Найдите свои учетные данные для доступа по SSH
Ваше имя хоста SSH, имя пользователя и пароль были отправлены вам по электронной почте, когда вы впервые подписались на службу HostPapa VPS.Вы найдете их в электронном письме «Добро пожаловать в семью HostPapa».
Войдите на свой сервер через SSH
Откройте клиент командной строки на локальном компьютере и используйте следующие инструкции для подключения к серверу.
Окна
Откройте PuTTY и введите имя хоста вашего сервера или IP-адрес, указанный в приветственном письме, в поле HostName (или IP-адрес).
Убедитесь, что переключатель рядом с SSH выбран в Тип подключения , затем нажмите Открыть , чтобы продолжить.
Вас спросят, хотите ли вы доверять этому хосту. Выберите Да , чтобы продолжить.
В открывшемся окне командной строки вы увидите приглашение войти как :
Введите свое имя пользователя , которое для большинства администраторов должно быть root .
Теперь введите свой пароль , чтобы завершить процесс подключения.
Mac OS / Linux
Введите следующую команду в окне Терминал , заменив [имя пользователя] и [имя хоста] на те, которые указаны в вашем приветственном письме. Для большинства сеансов администратора имя пользователя будет root :
ssh [имя пользователя] @ [имя хоста]
Вам будет предложено продолжить подключение.Введите да и нажмите возврат .
Теперь вам будет предложено ввести пароль.
Введите свой пароль для подключения к серверу.