Подключение к серверу по ssh/rdp

Содержание:

Прочее

Это бонус для развлечения. Шутка от разработчиков Linux, не несущая пользы.

cowsay — заставляет цифровую корову повторить текст, который вы ей передали. Как echo, только от лица коровы.

fortune | cowsay — награждает корову философским интеллектом и дает ей возможность делиться с вами умными цитатами.

cowsay -l — демонстрирует всех животных, которые могут с вами пообщаться в том случае, если вам почему-то не приглянулась корова.

sudo название менеджера пакетов install fortunes fortune-mod fortunes-min fortunes-ru — учит животных говорить на русском.

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

Многофакторная аутентификация в SSH

Существует пять способов, как добавить второй фактор для аутентификации в SSH:

  1. Обновите OpenSSH и используйте аппаратные токены (ключевые носители). В феврале 2020 года в OpenSSH добавили поддержку токенов FIDO U2F (Universal Second Factor). Это отличная новая функция, но есть нюанс.
    Так как это обновление добавляет новые типы ключей для поддержки токенов, его можно использовать только, если обновить и клиента и сервер до версии 8.2 или более поздней. Текущую версию клиента можно проверить командой , для удаленного сервера можно использовать .
    Также были добавлены два новых типа ключей — и (с соответствующими типами сертификатов). Для создания ключевых файлов вставьте ваш токен в компьютер и выполните команду . Эта команда создаст открытый и закрытый ключи, привязанные к вашему U2F токену. Закрытый ключ на U2F устройстве используется для расшифровки файла закрытого ключа, хранящегося на диске.
    Также в качестве второго фактора можно задать пароль для ключевых файлов. OpenSSH поддерживает еще один вариант генерации ключей типа -«резидентные» ключи. В этом случае ключевые файлы хранятся на U2F токене. Таким образом, ключи будут всегда у вас с собой. Создать резидентный ключ можно командой . Чтобы перенести ключевой файл на новую машину, необходимо вставить ключевой носитель и выполнить команду . Необходимо будет активировать ваш токен при подключении.
  2. Используйте PIV+PKCS11 и Yubikey. Если вы хотите подключаться к машинам, где установлены более ранние версии SSH-сервера, вы можете использовать токен другим способом. Проект Yubikey публикует инструкцию U2F+SSH with PIV/PKCS11. Это не тоже самое, что в случае с FIDO U2F. Нужно немного напрячься, чтобы разобраться.
  3. Используйте ssh-агент . Filippo Valsorda сделал SSH-агента для Yubikeys. Он совсем новый и пока имеет минимальный набор функций.
  4. Используйте Touch ID и . Sekey — это SSH-агент с открытым исходным кодом, который сохраняет закрытые ключи в системе secure enclave для MacOS и позволяет использовать функцию подписания через Touch ID.
  5. Используйте Single Sign On SSH. Здесь можно найти инструкцию по настройке. Преимущество Single Sign On SSH заключается в том, что вы можете использовать политику безопасности вашего поставщика учетных записей, включая поддержку многофакторной аутентификации.

Командная строка

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

Когда вы рабо­та­е­те за ком­пью­те­ром, вы обыч­но види­те окна, кноп­ки, стра­ни­цы и всё подоб­ное. Это назы­ва­ет­ся гра­фи­че­ским интерфейсом.

Гра­фи­че­ский интер­фейс — это не сами про­грам­мы. Это лишь спо­соб пред­став­ле­ния про­грам­мы. Сама про­грам­ма — это то, что испол­ня­ет­ся внут­ри ком­пью­те­ра: то, что счи­та­ет, копи­ру­ет, обра­ба­ты­ва­ет и так далее. Есть огром­ное коли­че­ство про­грамм без гра­фи­че­ско­го интер­фей­са: напри­мер, веб-сервер Apache — это про­грам­ма. Сер­вер рабо­та­ет на вашем ком­пью­те­ре, зани­ма­ет память, выда­ёт стра­ни­цы куда нуж­но, ведёт свою сер­вер­ную рабо­ту, но у него нет гра­фи­че­ско­го интер­фей­са — нет ника­ко­го окош­ка, на кото­рое вы може­те ска­зать «Это сервер».

Или, напри­мер, ваш бра­у­зер. Если у вас Chrome, то вы види­те окно с веб-страницей. А есть вер­сия Headless Chrome, кото­рая может выплё­вы­вать любые стра­ни­цы в виде кар­ти­нок пря­мо на ваш жёст­кий диск. У это­го «Хро­ма» нет гра­фи­че­ско­го интер­фей­са со стра­ни­цей (но есть неболь­шой интер­фейс для настройки).

С нашей чело­ве­че­ской точ­ки зре­ния интер­фейс — это и есть про­грам­ма. А с точ­ки зре­ния ком­пью­те­ра интер­фейс — это что-то побоч­ное. И опыт­ные про­грам­ми­сты доволь­но часто исполь­зу­ют в рабо­те про­грам­мы, у кото­рых нет гра­фи­че­ско­го интер­фей­са, толь­ко команд­ная строка.

Команд­ная стро­ка — это тек­сто­вый интер­фейс про­грам­мы. Вы вво­ди­те в эту стро­ку коман­ду, про­грам­ма может в ответ что-то вас спро­сить тек­стом, вы ей тек­стом отве­ти­те, и про­грам­ма сде­ла­ет свою рабо­ту. Мы уже стал­ки­ва­лись с команд­ной стро­кой, когда соби­ра­ли своё при­ло­же­ние в элек­троне или объ­яс­ня­ли, как устро­ен интер­нет:

Здесь в команд­ной стро­ке поль­зо­ва­тель maximilyakhov на ком­пью­те­ре iMac-Maxim выпол­нил коман­ду ping для адре­са thecode.media — то есть про­ве­рил, откли­ка­ет­ся ли сер­вер с нашим сай­том. Это вид­но из вто­рой стро­ки. Про­грам­ма Ping ста­ла пока­зы­вать ста­ти­сти­ку: полу­чи­ли паке­ты по 64 бай­та за 79 мс. Поль­зо­ва­тель удо­вле­тво­рил­ся резуль­та­том, вышел из про­грам­мы кла­ви­шей Ctrl+C и полу­чил ито­го­вую ста­ти­сти­ку. Сей­час команд­ная стро­ка гото­ва к новым командам 

Быва­ют и дру­гие интер­фей­сы про­грамм. Напри­мер, может быть голо­со­вой интер­фейс: ком­пью­тер вас слу­ша­ет, интер­пре­ти­ру­ет коман­ды, зада­ёт вам вопро­сы голосом.

Может быть интер­фейс в виде чата. Вме­сто того что­бы давать тек­сто­вые коман­ды в команд­ной стро­ке, вы пише­те коман­ды чат-боту.

Может быть даже физи­че­ский интер­фейс: когда вы игра­е­те в при­став­ку, вы даё­те коман­ду с помо­щью джой­сти­ка или каких-нибудь палок с дат­чи­ка­ми. Когда в вас попа­да­ют вра­ги, джой­сти­ки могут виб­ри­ро­вать — это при­став­ка вам пыта­ет­ся что-то ска­зать. Так что гра­фи­че­ский интер­фейс — это лишь одна из разновидностей.

Как пользоваться PuTTY

1. Интерфейс программы

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

Рассмотрим за что отвечают те или иные вкладки программы, чтобы вы ориентировались что и где искать. У нас есть четыре вкладки:

  • Session — отвечает за подключение удаленному серверу, тут мы вводим параметры подключения, порт, адрес, а также можем сохранить все настройки putty, чтобы не настраивать каждый раз заново.
  • Terminal — позволяет включать или отключать возможности терминала;
  • Window — настройка внешнего вида окна, цвет, шрифт, кодировка;
  • Connection — настройка параметров подключения, алгоритма шифрования, сжатия, ключей аутентификации, X11 и других параметров.

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

2. Подключение к удаленному компьютеру PuTTY

Чтобы подключиться к удаленному компьютеру по SSH перейдите на вкладку «Session», здесь, в поле «Host Name» необходимо прописать ip адрес или имя хоста, компьютера, к которому вы хотите подключиться, в поле порт — нужно указать порт, на котором запущен SSH сервер, по умолчанию используется порт 22:

Далее, нажмите кнопку «Open». После этого появится запрос на добавление ключа сервера в список доверенных ключей, нажмите «Да»:

Затем вам будет нужно ввести логин пользователя и пароль

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

Теперь авторизация прошла успешно, и вы можете выполнять нужные действия на сервере:

3. Сохранение сессии PuTTY

Чтобы не вводить каждый раз ip и порт можно сохранить эти данные в виде сессии, для этого пропишите новое имя в поле «Saved Sessions», а затем нажмите кнопку «Save»:

Теперь вы сможете загрузить сохраненную сессию, нажав кнопку «Load».

После того как будет завершена настройка putty и все параметры будут выставлены правильно вы можете сохранить настройки и не вводить их несколько раз.

4. Имя пользователя по умолчанию

Вы можете не вводить имя пользователя каждый раз, для этого перейдите на влкадку «Connection», затем «Data» и в поле «Auto-login Username» пропишите имя пользователя, например, root:

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

5. Авторизация по ключу ssh в PuTTY

Чтобы не вводить каждый раз пароль можно настроить авторизацию по ключу. В Linux такая возможность используется очень широко потому что это удобно. Первым делом необходимо создать ключ. Для этого запустите утилиту PuTTYgen и установите переключатель в положение «SSH-2 RSA» нажмите «Generate»:

Обязательно ключ должен быть SSH-2 RSA, если в главном окне нет, выберите в меню «Key». Подвигайте мышкой, чтобы создать достаточное количество энтропии:

Ключ готов, затем, с помощью кнопок «Save Public Key» и «Save Private Key» сохраните оба ключа.

Далее, откройте PuTTY, перейдите на вкладку «Connection», затем «SSH», затем «Auth»:

Здесь необходимо нажать кнопку «Browse» и добавить недавно сохраненный приватный ключ:

Далее, возвращаемся на вкладку «Session», выбираем наше сохранение и нажимаем «Save» чтобы сохранить настройки. Осталось только отправить наш открытый ключ на сервер. Для этого авторизуйтесь на нем с помощью пароля и открытый ключ вставьте ключ в конец файла /root/.ssh/authorized_keys.

Ключ можно брать прямо из окна PuTTYgen «Public key for pasting» или из файла открытого ключа:

Все, теперь можно выходить и авторизоваться снова. На этот раз подключение по ssh putty будет выполняться с помощью нашего ключа. Не забывайте сохранять настройки сессии, чтобы не выбирать ключ каждый раз. Теперь вы знаете как пользоваться программой putty, рассмотрим еще передачу файлов.

5. Передача файлов через scp в PuTTY

Не все знают, но PuTTY позволяет передавать файлы через ssh также как это делает linux с помощью утилиты scp. Нажмите Win+R, затем пропишите cmd, чтобы запустить командную строку.

Синтаксис утилиты pcsp выглядит следующим образом:

pscp опции путь_файлу имя_пользователя@хост/путь/к/файлу/на/удаленном/хосте

Например, мы можем отправить файл из текущей папки в папку пользователя /root/:

С помощью опции -P можно задать удаленный порт:

А опция load позволяет загрузить сохраенные настройки сессии PuTTY:

Теперь вы знаете как использовать putty для передачи файлов.

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

Все настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Перед тем, как его редактировать лучше сделать резервную копию на всякий случай:

1. Смена порта

Одна из самых частых настроек, которую надо выполнять на большинстве серверов, это смена порта. Если у сервера есть публичный IP адрес, то его сканируют множество ботов, и как только они находят открытый порт 22, то сразу начинают пытаться перебрать пароль. Откройте конфигурационный файл и найдите строчку Port, расскоментируйте её, если нужно:

Затем пропишите нужное значение порта, например 2222:

Для того, чтобы изменения вступили в силу надо перезагрузить SSH сервер:

Теперь, чтобы подключится к этому серверу надо будет явно указать порт с помощью опции -p:

2. Отключение входа суперпользователя

Чаще всего боты используют для перебора пароля логин суперпользователя. Авторизацию для этого пользователя можно отключить. Перед тем, как это делать убедитесь, что у вас есть в системе ещё как минимум один пользователь от имени которого вы сможете авторизоваться. Затем найдите строку PermitRootLogin и замените её значение на no:

Чтобы разрешить подключение ssh Debian для пользователя root, замените значение этого параметра на yes.

3. Авторизация по ключу

Следующий шаг по обеспечению безопасности вашего сервера — отключить вообще авторизацию по паролю, а использовать только авторизацию по ключу. Подробнее про авторизацию по ключу рассказано здесь. В конфигурационном файле sshd вам надо изменить только несколько строчек:

Сначала найдите строку PubkeyAuthentication и замените её значение на yes:

Перед тем как отключать возможность входа по паролю убедитесь, что вы добавили ключ для авторизации, как это описано в статье выше. Затем замените значения параметров ChallengeResponseAuthentication, PasswordAuthentication, UsePAM на no.

Как создать ключи SSH?

Сначала необходимо создать ключи ssh для аутентификации на локальном сервере. Для этого существует специальная утилита ssh-keygen, которая входит в набор утилит OpenSSH. По умолчанию она создает пару 2048 битных RSA ключей, которая подойдет не только для SSH, но и для большинства других ситуаций.

И так, генерация ключей ssh выполняется командой:

Утилита предложит вам выбрать расположение ключей. По умолчанию ключи располагаются в папке ~/.ssh/. Лучше ничего не менять, чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub.

Затем утилита предложит ввести пароль для дополнительного шифрования ключа на диске. Его можно не указывать, если не хотите. Использование дополнительного шифрования имеет только один минус — необходимость вводить пароль, и несколько преимуществ:

  • Пароль никогда не попадет в сеть, он используется только на локальной машине для расшифровки ключа. Это значит что перебор по паролю больше невозможен.
  • Секретный ключ хранится в закрытом каталоге и у клиента ssh нет к нему доступа пока вы не введете пароль;
  • Если злоумышленник хочет взломать аутентификацию по ключу SSH, ему понадобится доступ к вашей системе. И даже тогда ключевая фраза может стать серьезной помехой на его пути.

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

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

Общие сведения о SSH и ключахOverview of SSH and keys

SSH — это протокол зашифрованного соединения, позволяющий выполнять безопасные входы по незащищенным соединениям.SSH is an encrypted connection protocol that allows secure sign-ins over unsecured connections. SSH — это протокол подключения по умолчанию для виртуальных машин Linux, размещенных в Azure.SSH is the default connection protocol for Linux VMs hosted in Azure. Хотя протокол SSH и обеспечивает зашифрованное подключение, при использовании паролей с SSH виртуальные машины все равно не защищены от атак методом подбора.Although SSH itself provides an encrypted connection, using passwords with SSH still leaves the VM vulnerable to brute-force attacks. Мы рекомендуем подключаться к виртуальной машине по протоколу SSH с помощью пары открытого и закрытого ключей, также называемых ключами SSH.We recommend connecting to a VM over SSH using a public-private key pair, also known as SSH keys.

Пара открытого и закрытого ключей аналогична блокировке передней дверцы.The public-private key pair is like the lock on your front door. Блокировка предоставляется общедоступной, любой пользователь с правом ключом может открыть дверцу.The lock is exposed to the public, anyone with the right key can open the door. Ключ является частным и предоставляется только доверенным людям, так как его можно использовать для разблокировки дверцы.The key is private, and only given to people you trust because it can be used to unlock the door.

  • Открытый ключ размещается на виртуальной машине Linux при создании виртуальной машины.The public key is placed on your Linux VM when you create the VM.

  • Закрытый ключ остается в локальной системе.The private key remains on your local system. Его нужно защищатьProtect this private key. и нельзя никому предоставлять.Do not share it.

При подключении к виртуальной машине Linux виртуальная машина проверяет SSH-клиент, чтобы убедиться, что он имеет правильный закрытый ключ.When you connect to your Linux VM, the VM tests the SSH client to make sure it has the correct private key. Если у клиента есть закрытый ключ, он получает доступ к виртуальной машине.If the client has the private key, it’s granted access to the VM.

В зависимости от политик безопасности Организации можно повторно использовать одну пару ключей для доступа к нескольким виртуальным машинам и службам Azure.Depending on your organization’s security policies, you can reuse a single key pair to access multiple Azure VMs and services. Для каждой виртуальной машины не требуется отдельная пара ключей.You do not need a separate pair of keys for each VM.

Открытый ключ можно использовать совместно с любым пользователем, но только вы (или ваша локальная инфраструктура безопасности) должны иметь доступ к вашему закрытому ключу.Your public key can be shared with anyone, but only you (or your local security infrastructure) should have access to your private key.

Шаг 4 — Отключение аутентификации с помощью пароля на сервере

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

Прежде чем выполнять описанные в настоящем разделе шаги, убедитесь, что вы настроили аутентификацию на базе ключей SSH для учетной записи root на этом сервере, или (предпочтительно) вы настроили аутентификацию на базе ключей SSH для учетной записи сервера без привилегий root и с привилегиями 

На этом шаге вход в систему по паролю будет заблокирован, поэтому очень важно сохранить возможность доступа с правами администратора

Подтвердив права администратора для удаленной учетной записи, выполните вход на удаленный сервер с помощью ключей SSH как пользователь с привилегиями root или как пользователь с привилегиями . Затем откройте файл конфигурации демона SSH:

Найдите в файле директиву . Эта строка может быть прокомментирована с помощью  в начале строки. Раскомментируйте строку, удалив , и установите значение . После этого вы не сможете выполнять вход в систему через SSH с использованием паролей учетной записи:/etc/ssh/sshd_config

Сохраните и закройте файл, нажав , затем нажмите  для подтверждения сохранения файла, а затем нажмите  для выхода из nano. Для фактической активации этих изменений нужно перезапустить службу :

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

После проверки корректной работы службы SSH вы можете безопасно закрыть все текущие сеансы сервера.

Выполнение входа через SSH с использованием ключей

Хотя возможность входа в удаленную систему с помощью паролей может быть полезна, гораздо лучшей идеей будет настройка аутентификации с помощью ключей.

Как работает аутентификация с помощью ключей?

Аутентификация с помощью ключей реализуется путем создания пары ключей: приватного ключа и публичного ключа.

Приватный ключ располагается на клиентском компьютере, этот ключ защищен и хранится в секрете.

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

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

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

Весь этот процесс выполняется в автоматическом режиме после того, как вы настроите ключи.

Создание ключей SSH

Ключи SSH необходимо генерировать на компьютере, откуда вы хотите войти в систему. Как правило, это ваш локальный компьютер.

Введите следующую команду в командной строке:

Нажмите ENTER, чтобы принять используемые по умолчанию значения. Ваши ключи будут сгенерированы в файлах ~/.ssh/id_rsa.pub и ~/.ssh/id_rsa.

Перейдите в каталог с помощью следующей команды:

Просмотрите данные о разрешениях для файлов:

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

В то же время файл может использоваться совместно и имеет соответствующие разрешения для данной деятельности.

Как передать ваш публичный ключ на сервер

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

В результате будет создан сеанс SSH. Когда вы введете пароль, ваш публичный ключ будет скопирован в файл авторизованных ключей сервера, что позволит не использовать пароль при входе в следующий раз.

Основные команды PuTTY

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

ls — предназначена для вывода файлов, содержит в себе набор команд:

  • ls -la — выводит различные документы и показывает права доступа, включая имя создателя и владельца;
  • ls -lha — также выводит файлы, но показывает размер файла в байтах;
  • ls -lha | less — используется для постраничного просмотра документов.

cd — необходима для перемещения между директориями, например, cd перенаправляет пользователя в указанную папку, cd../ перемещает в верхний уровень, cd ~ открывает корневую папку.

echo — позволяет перемещать текст в файл. Например, если нам требуется создать новый текстовый документ или добавить текст в уже созданный файл, достаточно ввести «echo Привет, мир! >> new.txt».

sudo — наиболее используемая команда, означающая «SuperUser Do». Она позволяет выполнять любые команды от имени администратора.

df — дает возможность увидеть доступное дисковое пространство в каждом из разделов операционной системы. Синтаксис: df .

mv — используются для переименования файлов и перемещения их в другую директорию. Синтаксис: mv .

rm — если нужно удалить файлы или директорию целиком, то используйте эту команду. Синтаксис: rm .

cp — для копирования файлов и целых директорий воспользуйтесь этой строчкой. Синтаксис: cp .

mc — предназначена для запуска файлового менеджера Midnight Commander, который позволяет работать с файлами по FTP внутри консольного окна.

cat — наиболее популярная команда в Linux, позволяющая считывать данные из файлов и выводить их содержимое. Наиболее простой способ отображения содержимого в командной строке. Синтаксис: cat .

mkdir — позволяет создать одну или несколько директорий с указанным именем. Например, mkdir mdir1 mdir2 mdir3 добавит сразу 3 директории.

chmod — изменяет права доступа к файлам и каталогам. Синтаксис: chmod .

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

touch — используется для создания любого типа файлов: от пустого txt до пустого zip. Синтаксис: touch .

man и —help — нужны для того, чтобы узнать информацию о команде и о том, как ее можно использовать (man). Например, «man cat» покажет доступную информацию о команде cat. Ввод имени команды и аргумента помогает показать, каким образом можно использовать команду, например, cd –help.

locate — предназначена для поиска файла в системе Linux.

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

Навигация и управление файловой системой

Команды, необходимые для перемещения и ориентирования в файловой системе сервера. А еще для перемещения, копирования и удаления файлов. В общем, все, что вы делали бы в файловом менеджере, но через терминал.

cd — отправляет вас в любую папку на выбор. Синтаксис: cd путь до нужной директории. Если хочется на рабочий стол, то пишем: cd ~/Desktop. Вернуться в предыдущую папку? cd-. Перепрыгнуть в home? Просто вводим: cd без аргументов.

ls — отображает директории и файлы вокруг вас. То есть в той папке, где вы находитесь на текущий момент. Но чтобы ею пользоваться, необязательно переходить в конкретную директорию. Ее можно указать заранее. Вот так:

ls ~/Desktop/papka-testovaya

pwd — укажет путь до папки тем, кто заблудился. Если вы находитесь в папке Документы, то вывод pwd будет выглядеть вот так /home/имя пользователя/Documents. И так для любого каталога, в котором вы окажетесь.

file — покажет, что собой представляет файл. Фишка утилиты в том, что она демонстрирует разную информацию для разных типов файлов. К примеру, может дать подробные EXIF-данные для фотографий, включая разрешение и битность изображения.

mv — изначально использовалась для того, чтобы перемещать файлы из одного места в другое. mv ~/Desktop/timeweb.html ~/Documents переносит HTML-документ Timeweb с рабочего стола в документы. Но пользователи приноровились использовать mv для смены имени файлов. mv ~/Desktop/timeweb.html timeweb-2.html оставляет документ на месте, но меняет его название.

cp — создает копию выбранного файла в другом каталоге. cp ~/Documents/timeweb-file.txt /home/Webmaster/Desktop копирует документ с названием timeweb-file.txt на рабочий стол того же пользователя.

dd — управляет разделами. С ее помощью можно делать копии разделов: dd if=/dev/sda of=/dev/sdb. Можно перемещать разделы. Удалять их без возможности восстановления: dd if=/dev/zero of=/dev/sdX (в качестве раздела для «уничтожения» тут указана флешка). Копирование разделов подразумевает их запись на сторонние носители. Например, запись iso-образов на внешние накопители: dd if=~/Desktop/fedora-14.6.iso of=/dev/sdX bs=4M. if здесь — это путь к образу, а of — путь к смонтированному разделу (флешке).

rm — удаляет папки и все, что сможет в них найти. «Уничтожает» все субдиректории, документы, картинки, медиа. Вообще все, без возможности восстановления. Синтаксис:

rm путь до каталога, который надо вычистить вместе со всеми «внутренностями»

mkdir — создает новую папку. Синтаксис: mkdir путь_до каталога,_где_нужно_создать_новую_директорию название_для_этой директории. Если надо сделать на рабочем столе папку Timeweb, то пишем:

mkdir ~/Desktop/Timeweb

rmdir — удаляет директории. Не имеет права трогать их содержимое, поэтому отзовется ошибкой, если в удаляемой папке найдутся еще какие-то элементы. Перед использованием rmdir объект надо очистить.

wget — скачивает файл из переданной ссылки. Больше ничего не умеет. Простой текстовый менеджер загрузок. Работает так – если мы хотим загрузить скриншот панели управления Timeweb с официального сайта, то введем в терминал: wget https://timeweb.com/upload/resize_cache/iblock/b56/400_400_2/xscreen_3.jpg.pagespeed.ic.O4a5jdlo5A.jpg

zip — архивирует один или несколько файлов один файл в формате .zip. Синтаксис: zip название архива.zip путь до файла, который надо упаковать. К примеру:

zip noviy-archive.zip /home/me/soderzhimoe-archiva.txt

unzip — вытаскивает содержимое архива наружу. Работает по тому же принципу: сначала команда, потом путь до архива, который надо распаковать. Еще можно добавить опцию -d, чтобы удалить файлы из архива по завершении распаковки.

find — ищет файлы и папки по всей файловой системе. Умеет находить их по названию и по типу, но это зависит от выставленных опций. find -type d -name Timeweb будет искать только директории с именем Timeweb.

mount — монтирует образ или раздел диска. Синтаксис:

mount путь до раздела, что нужно смонтировать

unmount — «демонтирует» образ или указанный раздел. Синтаксис:

unmount путь до раздела, что нужно отмонтировать

Как настройки подключения по SSH влияют на безопасность

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

Первая настройка — проверка соответствия DNS-имени IP-адресу клиента. За это отвечает параметр UseDNS.

Следующий шаг к безопасности — запрет пустых паролей. Задается в параметре PermitEmptyPasswords.

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

Еще один подход к ограничению несанкционированных подключений — задание пользователей и групп, которым разрешен доступ по SSH. Они перечисляются в параметрах AllowUsers и AllowGroups.

Дополнительно, можно задать время, в течении которого система ожидает от пользователя ввода пароля. По умолчанию это две минуты, но лучше уменьшить до 30 секунд.

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

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

Нельзя не упомянуть про эффективный инструмент борьбы с попытками аутентификации — утилите fail2ban. Это сервис, который читает лог безопасности и блокирует злоумышленников по IP. Штатно устанавливается при помощи apt:

После установки появляются два конфигурационных файла: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Первый отвечает за настройки запуска fail2ban, а второй за настройки защиты конкретных сервисов.

Как подключиться по SSH с помощью ключа

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

Генерация (создание) SSH-ключа

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

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

После ввода утилита попросит задать пароль для ключа. Здесь довольно важный момент. Можно вовсе не задавать пароль и просто нажать Enter. В таком случае подключение к серверу будет осуществляться только по ключу и без всякого ввода пароля.

Но в примере мы будем «параноиками» и зададим пароль на использование ключа. Придумаем именно отдельный пароль, не тот, что от пользователя сервера. Можно выбрать вариант проще, который возможно будет без труда запомнить и ввести вручную, например . Его мы будем в будущем вводить каждый раз, как потребуется использовать ключ. И так, задаем…

ssh-keygen -f ~/.ssh/server-key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 

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

:~$ ssh-keygen -f ~/.ssh/server-key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/uxumax/.ssh/server-key.
Your public key has been saved in /home/uxumax/.ssh/server-key.pub.
The key fingerprint is:
SHA256:RX489Wcrb1rt/CRlEs08D8T5Wn//qydYZOpOlIs+cGE 
The key's randomart image is:
+-------+
|          .  .o. |
|         o . oo= |
|          o + ooB|
|         E ..+ +B|
|        S .o+..+=|
|       . .o...+++|
|        o..oo .+=|
|        ...o .+*.|
|         .o. o+.O|
+---------+
:~$ 

В выводе строка с текстом говорит в какой именно папке сохранился ключ.

Добавление ключа в список доверенных на сервере

В предыдущем этапе мы только создали ключ. Пока он не подходит ни к одному серверу. Чтобы использовать его для входа на наш сервер, необходимо добавить его в список доверенных ключей на этом сервере. Звучит сложно, но на самом деле все обходится лишь одной командой, которая содержит путь до ключа, логин и IP-адрес сервера в своих опциях и имеет такой вид: .

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

:~$ ssh-copy-id -i ~/.ssh/server-key 
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/uxumax/.ssh/server-key.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh ''"
and check to make sure that only the key(s) you wanted were added.

:~$ 

Подключение к серверу по ключу

Теперь можно подключаться к серверу, используя ключ. Для этого вводим команду, которая содержит логин, IP-адрес сервера и путь до ключа с опцией -i:

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

:~$ ssh   -i ~/.ssh/server-key
Enter passphrase for key '/home/uxumax/.ssh/server-key': 
Linux debian9 5.4.40-04224-g891a6cce2d44 #1 SMP PREEMPT Tue Jun 23 20:21:29 PDT 2020 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
:~# 
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector