Linux где папка ssh

Обновлено: 05.07.2024

Для повышения безопасности ssh-соединения рекомендуется отказаться от логина по паролю, и подключаться к удалённому серверу с помощью ключей. Это действие аналогично отпиранию замка с помощью ключа. Логин по паролю в конце-концов может быть взломан методом перебора, либо утечкой пароля. Тогда как логин по ключам достаточно стоек к взлому.

Здесь будет рассказано, как создать пару ключей на клиентской машине, работающей под ОС Ubuntu 18.04. Однако, данное руководство будет актуально и на других версиях linux, с некоторыми оговорками.

1. Создание пары ключей RSA

Для того, чтобы заходить на сервер по ключу, необходимо сгенерировать пару ключей: открытую и закрытую. Открытый (или публичный) ключ мы помещаем на сервер, а закрытый хранится у нас. По этой паре мы можем осуществлять логин на сервер. На данный сервер сможет заходить тот, у кого есть вторая часть ключа.

Сгенерируем пару ключей.

Эта команда по умолчанию создать пару ключей RSA, длинной 2048 бит. Этой длинны вполне хватает по безопасности для большинства операций. Можно добавить флаг -b 4096, чтобы получить ключ длинной 4096 бит.

После выполнения этой команды, вы получите следующий вывод:

Если ранее вы генерировали пару ssh-ключей, то вероятнее всего вы получите следующий вывод:

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

После успешной операции, вы увидите следующий вывод:

Таким образом вы можете задать ключевую фразу, это рекомендуется сделать. Эта фраза добавить ещё дин уровень безопасности, для предотвращения входа на сервер неавторизированных пользователей.

После этого, вы увидите следующий вывод:

Это говорит о том, что у вас появилась пара из открытого и закрытого ключа, которые могут быть использованы для логина на удалённый сервер. Далее необходимо скопировать открытый ключ на удалённый сервер.

Копирование открытого ключа с помощью программы ssh-copy-id

Программа ssh-copy-id присутствует во многих дистрибутивах linux, поэтому наиболее вероятно что этот вариант вам подойдёт по умолчанию.

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

Если вы ни разу не заходили на сервер, то вероятнее всего вы получите следующее предупреждение:

После чего программа будет искать в директории локального пользователя ключ id_rsa.pub (открытый), который мы создали ранее. Если утилита найдёт этот файл, то программа копирования запросит пароль для входа на удалённый хост.

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

/.ssh/id_rsa.pub в файл authorized_keys в поддиректории

Таким образом ключ загружен на удалённый сервер.

Копирование ключа вручную

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

Аналогично, можно все эти действия проделать вручную. Например, если вы не имеете доступ по ssh к удалённой машине. Для начала надо вывести содержимое открытого ключа на вашей локальной машине.

Вы получите содержимое файла ключа, которое будет выглядеть примерно так:

После чего на удалённой машине необходимо создать папку

/.ssh. Команда ниже создаст директорию, если её не существовало.

Теперь можем дописать публичный ключ нашей локальной машины на удалённую в конец файла authorized_keys :

После чего, необходимо убедиться, что директория

/.ssh и файл authorized_keys имеют соответствующие права доступа:

Если вы используете акаунт root, для настройки ключей. То не забудьте поменять права пользователя, чтобы директория и файлы ключей принадлежали пользователю, а не root. Делается следующей командой:

Где, user следует заменить на имя вашего пользователя.

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

После всех процедур вы можете попробовать подключиться к удалённому серверу.

Если при создании пары ключей вы не задали ключевую фразу (passphrase), вы будете залогинены автоматически. Если вы задали ключевую фразу, вам будет предложено её ввести. Это означает, что вы всё сделали верно. Теперь можно отключить логин по паролю. Для этого отредактируем файл sshd_config:

Вам нужно найти поле: PasswordAuthentication . Она может быть даже закомментирована. Её необходимо раскоментировать и поставить значение no.

Сохраните и закройте файл нажав CTRL + X , затем Y для подтверждения сохранения файла, а далее ENTER для выхода из текстового редактора nano. Для того, чтобы изменения вступили в силу, нам необходимо перезапустить демон sshd:

Всё, теперь можете открыть новое окно терминала, и проверить соединение по ssh по вашему логину. Всё должно работать без пароля.

Да, доступ по SSH предоставляется при подключении соответствующей услуги.

Для обеспечения большей безопасности аккаунта мы рекомендуем ограничивать доступ по SSH только вашими IP. В разделе «Хостинг / Управление / Настройки SSH» можно указать один или несколько разрешенных IP или диапазонов.

Как подключиться к серверу по SSH?

Прежде всего, убедитесь, что у вас подключена услуга «Поддержка SSH», а ваш текущий IP указан в списке разрешенных в контрольной панели в разделе «Хостинг / Управление / Настройки SSH» (либо ограничение по IP выключено).

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

Если ваши файлы кодированы в UTF-8, то, во-первых, в настройках клиента нужно указать именно эту кодировку, а во-вторых, сразу после подключения необходимо выполнить в терминале следующую команду:

Чтобы данная команда выполнялась автоматически при каждом подключении, эту строку можно добавить в файл .bash_profile, находящийся в корне аккаунта.

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

Прежде всего необходимо узнать, в какой кодировке закодированы ваши файлы. Если вы не знаете этого, то, скорее всего, это cp1251. Эта кодировка по умолчанию в русской версии ОС Windows и на нашем хостинге. Гораздо реже, но встречаются файлы в кодировке UTF-8.

Узнав кодировку файлов, ее же нужно указать как кодировку подключения (Character set в разделе Translation в PuTTY) и в качестве значения переменной LANG (командой LANG=ru_RU.название_кодировки после подключения).

Как использовать доступ по 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 внутри вашей домашней директории появятся файлы key_rsa и key_rsa.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 через терминал или по SFTP с помощью SFTP-клиента, поддерживающего авторизацию по ключу (например, FileZilla) без указания пароля. Программа должна сама определить, что для авторизации необходимо использовать ключ.

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

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

Что такое SSH?

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

За поддержку протокола SSH в Linux отвечает набор программного обеспечения OpenSSH. Это открытая реализация этого протокола, которая предоставляет все необходимые возможности. В состав пакета OpenSSH входят утилиты для установки соединения, передачи файлов, а также сам ssh сервер.

Установка OpenSSH в Ubuntu

Установить SSH на Ubuntu будет очень просто, программа считается стандартной и используется почти везде. Хотя по умолчанию в дистрибутиве её нет, но зато она есть в официальных репозиториях.

Поэтому для установки откройте терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните команду:

sudo apt install openssh-server

ssh

Будет загружено несколько пакетов, а когда установка ssh сервера Ubuntu завершится, программа будет готова к работе. Если вы хотите чтобы служба запускалась автоматически нужно добавить его в автозагрузку. Поэтому чтобы включить SSH в Ubuntu 20.04 выполните:

sudo systemctl enable sshd

ssh1

Если затем вы захотите удалить службу из автозагрузки, используйте команду disable:

sudo systemctl disable sshd

Что касается клиента ssh, то он уже установлен в системе по умолчанию. Сейчас вы можете попробовать подключиться к локальному ssh серверу просто набрав:

ssh3

В одной из предыдущих статей мы рассматривали что означает адрес 0.0.0.0, сейчас вы можете убедиться что в пределах этой машины он значит локальный адрес:

ssh2

Точно таким способом вы можете получить ssh доступ ubuntu к любому другому компьютеру из сети. Для этого достаточно указать вместо localhost его ip адрес и имя пользователя в таком формате:

$ ssh имя_пользователя @ ip_адрес

Настройка SSH в Ubuntu

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

Перед тем как вносить изменения в этот конфигурационный файл рекомендуется сделать его резервную копию, для этого можете использовать такую команду:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults

Дальше вы можете перейти к настройке конфигурационного файла:

sudo vi /etc/ssh/sshd_config

Первым делом желательно сменить порт, на котором работает ssh, возможный злоумышленник не знал включен ли у вас этот сервис. Найдите в конфигурационном файле строчку Port и замените ее значение на любое число, например, Port 2222:

ssh4

По умолчанию вход от имени суперпользователя включен, рекомендуется отключить такую возможность. Для этого найдите строчку PermitRootLogin и замените ее значение на no:

ssh5

Чтобы разрешить аутентификацию по ключу, а не по паролю найдите строку PubkeyAuthentication и убедитесь, что ее значение yes.

ssh6

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

sudo systemctl restart ssh

Более подробно про настройку и использование различных тонкостей ssh рассказано в статье как использовать ssh.

Если вы изменили порт, то при подключении в клиенте тоже нужно указать новый порт, так как по умолчанию будет использоваться 22, например:

ssh -p 2222 localhost

К тому же, если на компьютере установлен и настроен брандмауэр, то в нем тоже нужно разрешить доступ к новому порту ssh, для этого выполните:

sudo ufw allow 2222

Даже если служба ssh находится на порту по умолчанию, его тоже нужно открыть в брандмауэре если вы собираетесь подключаться к компьютеру через интернет:

sudo ufw allow 22

Настройка ssh Ubuntu 20.04 полностью завершена.

Выводы

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

На завершение видео, где подробно рассказано о том, что такое SSH:

Базовые SSH Команды

В этом руководстве, мы расскажем о 14 базовых SSH командах. Эти SSH команды дадут вам базовые навыки управления и работы с файлами в терминале Linux.

SSH команда Объяснение
ls Показать содержимое каталога (список названий файлов)
cd Сменить каталог
mkdir Создать новую папку (каталог)
touch Создать новый файл
rm Удалить файл
cat Показать содержимое файла
pwd Показать текущий каталог (полный путь к этому каталогу)
cp Копировать файл/папку
mv Переместить файл/папку
grep Поиск конкретной фразы в файле
find Поиск файлов и папок
vi/nano Текстовые редакторы
history Показать 50 последних использованных команд
clear Очистить окно терминала

Прокачайте ваш проект, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов. 30-дневная гарантия возврата денег!

Что вам понадобится

Перед тем, как вы начнете это руководство, вам понадобится следующее:

Шаг 1 — Доступ к удаленному серверу

Рекомендуется иметь виртуальный сервер, с недавно построенным шаблоном, на случай если вы удалите что-то, что не хотели удалять, в таком случае вам не придется восстанавливать сервер и начинать все с начала.

Вот одна из базовых SSH команд, которую вы должны использовать:

Эта команда соединяет вас с вашим сервером, который имеет свой IP адрес serverip и имя пользователя user. Другой, еще более легкий путь для соединения с сервером, это использование команды ssh serverip, в таком случае оболочка будет думать, что вы подключаетесь с тем же именем пользователя под которым вы вошли.

Как только вы введете эту команду, вам будет предложено ввести пароль (если вы подключаетесь впервые, то вы также получите предупреждение о том, что сервер к которому вы подключаетесь не опознан, просто впишите yes в командную строку).

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

Более детальное руководство о том, как присоединиться к VPS используя Putty SSH (ssh-клиент) вы можете найти здесь.

Шаг 2 — Базовые SSH команды

В этом шаге мы пройдемся по самым основным/часто используемым SSH командам, о которых вам следует знать!

Обычно вместо source вы пишите файл, который вы хотите скопировать. Вместо dest, пишите расположение файла/папки. Сейчас, если вы напишите название расположения, которого не существует, к примеру, у вас исходный файл oldfile.txt и вы пишите расположение файла newfile.txt, команда просто скопирует файл и вставит его с новым именем.

В дополнение, имеется несколько опций, которые вы можете использовать с командой cp:

ВАЖНО! Nano, в отличии от vi не является стандартным редактором, скорее всего вам необходимо установить его перед тем, как вы начнете его использовать. Руководство о том, как установить редактор nano можно найти здесь.

  1. history – Эта команда используется для отображения последних использованных вами команд. К примеру: history 20 отобразит 20 последних введенных команд в Терминале Linux.
  2. clear – Эта команда очистит весь текст в окне Терминала.

Заключение

Надеемся, что данное руководство было достаточно понятно для освоения и получения знаний о применении базовых SSH команд. Мы рекомендуем посетить эту страницу, для получения более подробной информации о командах упомянутых в этом руководстве!

Советуем ознакомиться с руководством по смене SSH порта для укрепления безопасности вашего сервера.

Читайте также: