- Как удалить устаревшие ключи SSH, управление ключами
- Delete SSH Keys Command for Linux and Unix
- How to delete SSH keys on Linux or Unix
- Linux Lock An Account
- FreeBSD Local An Account
- Solaris / HP-UX UNIX Lock An Account
- Remove SSH Keys
- A note about removing a particular host key from SSH’s known_hosts file
- DenyUsers option can block any user
- How to Add and Delete SSH Keys
- Prerequisites
- Add SSH Key to Vultr Instance
- Linux and Mac workstations
- Windows workstations
- Alternate method for any workstation type
- Delete SSH Key
- Manage SSH Keys via API
- More Information
- ssh: remove all keys for this IP
- SSH в Linux
- Подключение по SSH
- Сгенерировать пару ключей
- Какой ключ куда?
- Передать ключ на удалённый хост
- ssh-copy-id
- Узнать версию OpenSSH в Linux
- Выполнить команду из скрипта на удалённом компьютере
- known_hosts
- Создать SSH туннель
- Демонстрация
- Список всех открытых SSH туннелей
- Закрыть все SSH туннели
- Запустить SSH в фоновом режиме
- SSH_MSG_USERAUTH_BANNER
- Конвертация сертификатов
Как удалить устаревшие ключи SSH, управление ключами
Инструкция, как удалить устаревшие ключи SSH из файла know_hosts при смене ключа на сервере.
Первый раз, когда вы заходите на сервер, ssh вас спрашивает, доверяете ли вы ключу. Если отвечаете нет, соединение закрывается. Если да — ssh клиент записывает ключ сервера в файл
/.ssh/known_hosts. Данный ключ определяет уникальность системы, к которой вы подключаетесь. Узнать, где какой ключ нельзя (ибо несекьюрно).
Если ключ сервера поменялся (например, сервер переустановили), ssh выводит предупреждение о не соответствии ключа. Обратите внимание, если сервер не трогали, а ssh выводит ошибку, значит вы не к тому серверу подключаетесь (например, в сети появился ещё один компьютер с тем же IP, особо этим страдают различные локальные сети с 192.168.1.1, которых в мире несколько миллионов).
В случае если ключ поменялся «легально» (переустановили систему), необходимо удалить запись о хосте в файле known_hosts.
Удалить известный ключ сервера можно командой ssh-keygen -R server. При этом нужно удалить ещё и ключ IP (они хранятся раздельно): ssh-keygen -R 127.0.0.1.
Ключ сервера хранится
в /etc/ssh/ssh_host_rsa_key и /etc/ssh/ssh_host_rsa_key.pub. Их можно:
а) скопировать со старого сервера на новый.
б) сгенерировать с помощью ssh-keygen. Пароля при этом задавать не надо (т.е. пустой). Ключ с паролем ssh-сервер использовать не сможет.
Заметим, если вы сервера клонируете (например, в виртуалках), то ssh-ключи сервера нужно обязательно перегенерировать.
Старые ключи из know_hosts при этом лучше убрать, иначе ssh будет ругаться на duplicate key.
Источник
Delete SSH Keys Command for Linux and Unix
How to delete SSH keys on Linux or Unix
The first step is to disable user login using command as follows:
Linux Lock An Account
Log in as root user:
sudo -i
Say lock out user named vivek. The syntax is:
# passwd -l userName
# passwd -l vivek
FreeBSD Local An Account
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
Solaris / HP-UX UNIX Lock An Account
Remove SSH Keys
The $HOME/.ssh/ stores all required ssh keys. Simply rename the directory using the mv command or delete the directory using rm command # mv /home/vivek/.ssh /home/vivek/nosshlogin
OR
# rm -rf /home/vivek/.ssh
For remote server edit $HOME/.ssh/authorized_keys or $HOME/.ssh/authorized_keys2 file and remove public key. This will delete login from home computer into your server. Finally, you can always delete user from your system using the pw on FreeBSD or userdel on Linux / UNIX.
A note about removing a particular host key from SSH’s known_hosts file
Use the ssh-keygen command as follows
ssh-keygen -R your-hostname
ssh-keygen -R server1.cyberciti.biz
DenyUsers option can block any user
Another option is to edit the sshd_config file on your remove Unix or Linux server. From the man page:
DenyUsers option can block any user. This option can be followed by a list of user name patterns, separated by spaces. Login is disallowed for user names that match one of the patterns. Only user names are valid; a numerical user ID (UID) is not recognized. By default, login is allowed for all users. If the pattern takes the form USER@HOST then USER and HOST are separately checked, restricting logins to particular users from particular hosts.
So edit file:
sudo vi /etc/ssh/sshd_config
Block user vivek from log in, append or modify as follows:
DenyUsers vivek
Say you want to deny wendy and vivek users, run:
DenyUsers vivek, wendy
Save and close the file. Reload or restart the sshd service on Linux or Unix
sudo systemctl restart sshd
OR
sudo service sshd restart
For more info see:
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник
How to Add and Delete SSH Keys
Changing SSH keys on a running server using the Customer Portal will reinstall and wipe all data on the server. You can manually change SSH keys without reinstalling the server by following this Quickstart Guide.
Prerequisites
- To follow this guide, you must have an SSH key in OpenSSH format. See our guide to create an SSH key.
- This guide applies to Linux and BSD servers.
- This guide is suitable for Linux, Mac, or Windows workstations.
Add SSH Key to Vultr Instance
Deploy a new SSH key from a Linux or Mac workstation with ssh-copy-id .
Linux and Mac workstations
The ssh-copy-id utility is pre-installed on most Linux distributions. Mac workstations can install it via Homebrew, MacPorts, or using Curl.
Use the utility to add your public key to the server.
- Specify the correct public key with the -i [path to public key] parameter.
Specify the username and server IP address (or domain name) as shown. For example, the root user at 192.0.2.123:
The utility will report some basic information and prompt for your password.
Enter your password and the utility installs the key.
Windows workstations
Windows workstations can mimic the ssh-copy-id utility with a one-line PowerShell command. The example shown pipes the the public key through SSH from the current user’s profile to the root user’s
Alternate method for any workstation type
/.ssh/authorized_keys.
Delete SSH Key
There are no common automatic methods to delete a public key, you must remove it manually.
/.ssh/authorized_keys.
Manage SSH Keys via API
The Vultr API offers several endpoints to manage SSH keys.
- Create a new SSH key for use with future instances. This does not update any running instances.
- List all SSH keys in your account.
- Get information about an SSH key.
- Update an SSH key.
- Delete an SSH key.
More Information
For more information about managing SSH keys, see our other guides:
Источник
ssh: remove all keys for this IP
При подключении к одному и тому же IP (настройка железа) — получаю облом, оно и понятно почему: нужно сделать
ssh-keygen -R 192.168.0.1 -f /home/andrey/.ssh/known_hosts
Хотелось бы чтобы mc делал это за меня )
Еще бы пароль запоминал на ssh )
И автоминетчик встроенный, угу.
ждал подобного ответа )
где я высказал чтото не относящееся к mc ?
тогда зачем задавал этот вопрос?
где я высказал чтото не относящееся к mc ?
а у меня mc плохо коллекцию музычки разгребает.
это тоже его работа?
Ну, на мой взгляд, руление ssh-ключами и запоминание паролей — это явно не функции консольного файл-менеджера.
Да и по первому пункту, мне кажется, стоит крутить в сторону настроек ssh-клиента, а не в сторону mc. Например, советуют такой трюк:
уж не для того, чтобы получать глупые ответы
а у меня mc плохо коллекцию музычки разгребает.
а это говорит о твоем безвкусии в музыке
Ну, на мой взгляд, руление ssh-ключами и запоминание паролей — это явно не функции консольного файл-менеджера.
раз доступ по ssh эта функция mc, то и автоматизация рутинных операция (типа запоминания пароля) он должен делать
Да и по первому пункту, мне кажется, стоит крутить в сторону настроек ssh-клиента, а не в сторону mc.
речь идет именно о доступе по ssh через mc, зачем мне настройки консольного клиента ? или он их использует ? (проверю)
а это говорит о твоем безвкусии в музыке
это говорит о том, что я использую для этого более подходяшие программы
раз доступ по ssh эта функция mc, то и автоматизация рутинных операция (типа запоминания пароля) он должен делать
афигеть. срочно покажи мне эту функцию mc — я её должен развидеть
это говорит о том, что я использую для этого более подходяшие программы
каллекции чтоле?
слушаешь музыку по чужим рейтингам ?
афигеть. срочно покажи мне эту функцию mc — я её должен развидеть
можешь афигевать на функцию всех браузеров по запоминанию паролей для сайтов, развидь ее
можешь афигевать на функцию всех браузеров по запоминанию паролей для сайтов, развидь ее
ай-вай 🙂 я афигеваю дважды — mc _должен_запоминать_ ssh`евские пароли для серверов
достойный перл — в квотезы.
тут уж одно из двух — если ты рулишь двумя локалхостами — ssh тебе нафиг не сдался — юзай telnet\rsh
а если хочешь по-взрослому — будь мужиком — запоминай пароли 🙂
речь идет именно о доступе по ssh через mc, зачем мне настройки консольного клиента ? или он их использует ? (проверю)
Ну, после удаления openssh-client из системы shell-соединение в mc перестает работать. Да это и логично — зачем писать собственную реализацию ssh-клиента, если можно использовать уже готовую.
ай-вай 🙂 я афигеваю дважды — mc _должен_запоминать_ ssh`евские пароли для серверов
автоматизация процесса работы с vfs у тебя вызывает смех ?
Хотелось бы чтобы mc делал это за меня
знаешь почему паспорта выдают люди (причём нужно обойти несколько человек), а не автоматические выдаватели?
ключ сделай, и запрети авторизацию по паролю.
можешь афигевать на функцию всех браузеров по запоминанию паролей для сайтов, развидь ее
на некоторые сайты можно без всякого пароля зайти. Например на WebMoney. Пароли несколько устарели, лет так на 30. Их один фиг не запомнить, если они конечно не «123».
сгенерируй ключ на свой машине и добавь его в .ssh/authorized_keys на удалённой и ходи без пароля.
автоматизация процесса работы с vfs у тебя вызывает смех ?
ты хочешь автоматизировать НАСТРОЙКУ БЕЗОПАСНОСТИ. Это да, смешно.
А работа с SSHFS и так отлично автоматизирована, у меня например это сводится к одному клику по иконке, а потом можно мышкой перетаскивать.
ключ сделай, и запрети авторизацию по паролю.
не могу — железяка не позволяет авторизацию по ключам
ты хочешь автоматизировать НАСТРОЙКУ БЕЗОПАСНОСТИ. Это да, смешно.
мой случай — это настройка однотипных железяк, пароль на них не в секрете, его потом пользователь поменяет
да и не проблема mc в том, как настроен ssh доступ, но если, например, он настроен по паролю, то можно помочь пользователю не вбивать его постоянно
для ftp mc может запомнить пароль — тут аналогичный случай
Пароли несколько устарели, лет так на 30
и что взамен теперь ?
нужно сделать ssh-keygen -R 192.168.0.1 -f /home/andrey/.ssh/known_hosts
Повесить в пользовательское меню по F2 ?
А это разве поможет ?
У автора fingerprint сервера меняется, с ключом точно так же завернет вроде бы
1. найди нормальную железку
2. почитай man ssh-agent, не знаю про пароли, но пассфразы к ключам оно помнить умеет.
ключи ессно. Ключ стоек даже к ректальному криптоанализу(при правильном применении).
Повесить в пользовательское меню по F2 ?
пока эту проблему решил опцией UserKnownHostsFile=/dev/null
я же говорил — железо не умеет (сменить не предлагать)
да и вообще, много чего не умеет ничего кроме пароля — так что пароль не устареет никогда
кнопка нужного этажа в лифте — тоже своего рода пароль )
да и вообще, много чего не умеет ничего кроме пароля — так что пароль не устареет никогда
твоя железка уже устарела. Смирись.
кнопка нужного этажа в лифте — тоже своего рода пароль
та не, это имя хоста. Я вот набираю
и попадаю на hostname без всяких паролей и т.д. В mc это тоже прикручивается при желании.
При подключении к одному и тому же IP (настройка железа)
Источник
SSH в Linux
Подключение по SSH
Подключение происходит с помощью команды ssh + имя_пользователя + хост
Если вы подключаетесь к хосту впервые, появится предупреждение
The authenticity of host ‘192.168.56.101 (192.168.56.101)’ can’t be established. ECDSA key fingerprint is SHA256:db8az/qbrWOJWvNRv2d9UHaDBnnUHanJ9Svca9vFx7c. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Если выбрать yes то в файл
/.ssh/known_hosts добавится похожая строка:
|1| abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1= ssh-rsa abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567
Обычно файл known_hosts имеет следующий формат (записи идут через пробел)
Это хэш от имени сервера.
Здесь через пробел записаны три элемента: хэш от имени сервера, название используемого ассиметричного алгоритма и публичный ключ сервера. Разберём их по очереди.
Сгенерировать пару ключей
Первый шаг — это генерация пары ключей. Обычно это делается на клиентской машине. Например, на вашем ноутбуке.
Основная команда ssh-keygen создаст 2048-битную пару RSA ключей. Для большей надёжности можно добавить флаг -b 4096
ssh-keygen -b 4096
Чтобы сгенерировать ключ в /home/$(whoami)/.ssh
sudo ssh-keygen -b 4096
Чтобы сгенерировать ключ в /home/root/.ssh
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):
Нужно придумать имя ключа.
Я назову ключ andrei-key101 а сохранять буду в текущую директорию.
Enter file in which to save the key (/root/.ssh/id_rsa): andrei-key101 Enter passphrase (empty for no passphrase): Enter same passphrase again:
Нужно два раза ввести пароль. Если он вам нужен. Обычно нет.
Your identification has been saved in andrei-key101 Your public key has been saved in andrei-key101.pub The key fingerprint is: SHA256:abcd/abcdefghijklmnopqrstuvwxyz1234567890ab root@urn-su The key’s randomart image is: +—[RSA 4096]—-+ |=o oo++ | |= oo o. = o | |+ | |Oo=o . . | |B+.o S . | |+o.o | |+.0. . | |o+= . E | |+=oo. . . | +—-[SHA256]——+
Ключи готовы. Я сохранил их в текущую директорию поэтому увижу их сделав ls
Важно помнить, что если вы генерируете ключ для другого пользователя нужно позаботиться о правильных правах доступа к этому ключу.
Какой ключ куда?
.pub ключ отправляйте на удалённую машину
приватный ключ храните на своём клиенте
Передать ключ на удалённый хост
После того, как ключи созданы нужно передать .pub ключ на удалённый хост.
Сделать это можно несколькими способами начнём с утилиты ssh-copy-id
ssh-copy-id
Я предпочитаю использовать с флагом -i и задавать путь до нужного ключа
sudo ssh-copy-id -i
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: «/home/andrei/.ssh/andrei-key.pub» The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established. ECDSA key fingerprint is SHA256:abcdefgh1234567890abcdefgh1234567890abc+def. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /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 andrei@192.168.0.2’s password:
Number of key(s) added: 1 Now try logging into the machine, with: «ssh ‘andrei@192.168.0.2′» and check to make sure that only the key(s) you wanted were added.
Теперь на хосте 192.168.0.2 в файле /home/andrei/.ssh/authorized_keys появилась новая запись вида
ssh-rsa AAAAB3NzaC1y … lseP/jXcq … Uydr/2CwQ &hellip ++TpY19pHqD/AnhL … Az62T/Ipyx … 8U2T andrei@host.andrei.com
Знак … заменяет длинные последовательности случайных символов для экономии места.
Проверить ключ можно командой
Если вы не задавали пароль для ключа, то попадёте на удалённый хост без лишних движений
Last login: Sun Jan 10 16:48:27 2021 from 192.168.0.1
Узнать версию OpenSSH в Linux
Чтобы узнать версию OpenSSH в вашем дистрибутиве Linux выполните
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
Выполнить команду из скрипта на удалённом компьютере
Если подключение по ssh происходим из bash-скрипта , и при этом нужно ещё выполнить ряд команд после подключения — достаточно перечислить эти команды через точку с запятой
#!/bin/bash ssh andrei@192.168.0.2 «ls;cd /home/andrei/bash_scripts;ls;ip a;cal»
Если нужно выполнить команду, требующую sudo попробуйте флаг -t
#!/bin/bash ssh -t andrei@192.168.0.2 «sudo apt upgrade»
known_hosts
Список известных хостов находится в файле known_hosts
Обычно файл known_hosts имеет следующий формат (записи идут через пробел) ( подробнее )
Примеры алгоритмов: ssh-rsa, ssh-dss, ssh-ed25519, ecdsa-sha2-nistp256 …
|1| abcdef+abcdefghijklmnopqrst=|abcdefghijklmnopqrstuvwxyz1= ssh-rsa abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrst/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzB1234567
Это хэш от имени сервера.
Это алгоритм шифрования
Это публичный ключ хоста
Создать SSH туннель
Туннели обычно создают для перенаправления траффика. SSH tunnel это то же самое что и SSH port forwarding.
Допустим вы хотите направить траффик со своего localhost (127.0.0.1) на удалённый хост 192.168.0.2 .
На удалённом хосте у вас есть пользователь с именем andrei и вы знаете его пароль.
Сперва нужно определиться с портами на локальном хосте и на удалённом.
Предположим, вы выбрали 9119 для локального и 9200 для удаленного хостов.
То есть вы хотите, чтобы всё, что идёт на localhost:9119 было перенаправлено на 192.168.0.2 : 9200
ssh -L 9119: 192.168.0.2 : 9200 andrei@192.168.0.2
The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established.
ECDA …
…
andrei@192.168.0.2’s password:
Last login: Sun Jan 31 13:23:00 2021
Проверьте ip выполнив
Если вам нужен туннель с поддержкой графического интерфейса X Window System используйте флаг -X
ssh -X -L 9119: 192.168.0.2 : 9200 andrei@192.168.0.2
Демонстрация
Туннель создан, не закрывайте терминал. Откройте два новых терминала или две новые вкладки в старом.
У вас два пустых терминала, оба на локальном хосте. Назовём их 1 и 2.
Из терминала 2 подключимся к удалённому хосту 192.168.0.2 по ssh и будем слушать на порту 9200 с помощью nmap
ssh andrei@192.168.0.2
nmap -l 9200
На терминале 1 с помощью nmap отправим сообщение на порт 9119 локального хоста. Это тот порт, который мы настроили на проброс.
nmap localhost 9119
Введём любой текст
Откройте терминал 2 там дожен появиться тот же текст
Список всех открытых SSH туннелей
Чтобы получить список туннелей открытых именно ssh выполните
sudo lsof -i -n | egrep ‘\ ‘
ssh 14695 andrei 3u IPv4 230080 0t0 TCP 192.168.0.1:46356->192.168.0.2:ssh (ESTABLISHED) ssh 14695 andrei 4u IPv6 230103 0t0 TCP [::1]:9119 (LISTEN) ssh 14695 andrei 5u IPv4 230104 0t0 TCP 127.0.0.1:9119 (LISTEN)
Вывод этой команды при практически идентичных условиях почему-то разный.
Ниже пример второго варианта. Если вы знаете почему так получается — напишите в комментариях.
ssh 15151 andrei 3u IPv4 239364 0t0 TCP 192.168.0.1:46464->192.168.0.2:ssh (ESTABLISHED) ssh 15151 andrei 4u IPv6 239380 0t0 TCP [::1]:mxit (LISTEN) ssh 15151 andrei 5u IPv4 239381 0t0 TCP 127.0.0.1:mxit (LISTEN) ssh 15151 andrei 9u IPv6 239428 0t0 TCP [::1]:mxit->[::1]:54306 (ESTABLISHED)
Закрыть все SSH туннели
Чтобы закрыть всё, что связано с ssh можно выполнить
sudo killall ssh sshd
Этот метод хорош только если вы работаете один, например на какой-то виртуальной машине.
Запустить SSH в фоновом режиме
Существует несколько способов запустить ssh соединение в фоновом режиме — то есть освободим текущий терминал.
-L, screen, tmux, nohup
Мне запустить ssh фоном из скрипта помог nohup, поэтому начнём с него
nohup ssh user@host «cd scripts;python3 my_script.py $ARG1 $ARG2; exit» &
Для чего это было нужно: Python скрипт сначала открывал одно ssh соединение из subprocess там выполнялась команда для запуска мониторинга потребления памяти и больше от этого соединения ничего было не нужно, зато необходимо было выполнять новые соединения с нагрузкой из другого скрипта.
Чтобы уйдя из первого подключения не оборвать мониторинг потребления памяти перед ssh нужно было добавить nohup, а в самом конце поставить &
SSH_MSG_USERAUTH_BANNER
Клиенту, подключившемуся к ssh серверу можно показать баннер SSH_MSG_USERAUTH_BANNER
sudo vi /etc/issue.net
И отредактируйте файл добавив свой баннер
Откройте sshd_config и укажите путь до баннера
sudo vi /etc/ssh/sshd_config
/banner
# no default banner path #Banner none
Этот баннер будет показан ДО авторизации, то есть во время ввода пароля
Чтобы создать баннер, который будет показан после успешного входа выполните
sudo vi /etc/motd
После редактирования файлов перезапустите sshd
sudo systemctl restart sshd.service
Конвертация сертификатов
Рассмотрим простой пример: вы достали из базы данных сертификат MIIC4jCCAc … A7A6Rpt8V9Q== , но он не отформатирован и не проходит валидацию
Сертификат, конечно, длиннее, я поставил троеточие для экономии места и вашего времени.
echo ‘MIIC4jC … 7A6Rpt8V9Q==’ | base64 -d | openssl x509 -inform der
Либо, если вам нужно работать с файлами — сохраните исходный сертифика в фай raw_cert
echo MIIC4jC … 7A6Rpt8V9Q== > raw_cert
cat raw_cert | base64 -d | openssl x509 -inform der > cert
cat cert
——BEGIN CERTIFICATE——
MIIC4jC … 7A6Rpt8V9Q==
——END CERTIFICATE——
Такого же результата можно было добиться аккуратно добавив ——BEGIN CERTIFICATE—— в начало и ——END CERTIFICATE—— в конец файла, но не всегда всё так просто.
Источник