Как настроить ключи ssh в ubuntu 18.04
Содержание:
- Содержание
- Управление идентификацией
- Как отключить тестовый режим в windows 7. Включение и выключение тестового режима Windows
- Настройка сервера SSH
- Установка SSH в Ubuntu
- SSH-клиенты для Windows — программы и online — аддоны
- 4: Отключение парольной аутентификации
- Настройка Ubuntu Server 18.04 после установки
- How To Configure SSH
- How To Log Into SSH with Keys
- Настраиваем доступ по SSH
- Шаг 3 — Аутентификация на вашем сервере Ubuntu с помощью ключей SSH
- Шаг 1 — Создание пары ключей RSA
- Conclusion #
- 3: Аутентификация по SSH-ключам
- Графики бинарных опционов: понятие, виды, анализ
- Не инициализируется жесткий диск: находим причины и устраняем проблему
- Basic Syntax
- Основные команды SFTP
- Как подключиться по SSH с помощью пароля
- Как открыть Центр уведомлений в macOS
- Шаг 4 — Отключение аутентификации с помощью пароля на сервере
- Заключение
Содержание
Управление идентификацией
$ cat ~/.ssh/config
StrictHostKeyChecking no
Парольная аутентификация
# apt install sshpass # sshpass -p '123' ssh 172.16.1.13 server# sshpass -p cisco ssh switchN server# sshpass -p cisco ssh switch1 sh int | grep line
Аутентификация с использованием ключей ssh
gate# cat /etc/ssh/sshd_config
... PubkeyAuthentication yes #AuthorizedKeysFile %h/.ssh/authorized_keys ...
Генерация ключей
user1@client1:~$ ssh-keygen
... Enter passphrase (empty for no passphrase): password1 ...
user1@client1:~$ ls .ssh/ user1@client1:~$ chmod 755 . user1@client1:~$ chmod 700 .ssh/ user1@client1:~$ chmod 600 .ssh/authorized_keys
Распространение публичных ключей
linux$ ssh-copy-id gate freebsd$ ssh-copy-id -i .ssh/id_rsa.pub gate
вручную
user1@client1$ ssh gate "mkdir .ssh" user1@client1$ scp .ssh/id_rsa.pub gate:.ssh/authorized_keys или user1@client1$ cat .ssh/id_rsa.pub | ssh gate "cat >> .ssh/authorized_keys"
Использование ssh_agent
user1@client1$ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-JaQgNr4492/agent.4492; export SSH_AUTH_SOCK; SSH_AGENT_PID=4493; export SSH_AGENT_PID; echo Agent pid 4493; user1@client1$ SSH_AUTH_SOCK=/tmp/ssh-JaQgNr4492/agent.4492; export SSH_AUTH_SOCK; user1@client1$ SSH_AGENT_PID=4493; export SSH_AGENT_PID;
или
user1@client1$ eval `ssh-agent -s`
user1@client1$ ssh-add Enter passphrase for /root/.ssh/id_rsa: ... gate# ssh-add -l ... user1@client1$ ssh gate
Аутентификация с использованием протокола GSSAPI
Регистрация принципалов сервиса в KDC и перемещение ключа сервиса на сервер
Debian/Ubuntu (MIT)
root@server:~# kadmin.local
kadmin.local: addprinc -randkey host/gate.corpX.un ... kadmin.local: listprincs kadmin.local: ktadd -k gatehost.keytab host/gate.corpX.un ... kadmin.local: quit
server# scp gatehost.keytab gate:
FreeBSD (Heimdal)
server# kadmin -l
kadmin> add -r host/gate.corpX.un ... kadmin> list * kadmin> ext -k gatehost.keytab host/gate.corpX.un kadmin> quit
server# scp gatehost.keytab gate:
Microsoft Active Directory
Добавляем пользователя в AD
Login: gatehost Password: Pa$$w0rd
Пароль не меняется и не устаревает
C:\>ktpass -princ host/gate.corpX.un@CORPX.UN -mapuser gatehost -pass 'Pa$$w0rd' -out gatehost.keytab C:\>setspn -L -U gatehost C:\>pscp gatehost.keytab gate:
Добавление ключа в системный keytab
Debian/Ubuntu (MIT)
root@gate:~# ktutil
ktutil: rkt /root/gatehost.keytab ktutil: list ktutil: wkt /etc/krb5.keytab ktutil: quit root@gate:~# klist -ek /etc/krb5.keytab
FreeBSD (Heimdal)
gate# ktutil copy /root/gatehost.keytab /etc/krb5.keytab gate# touch /etc/srvtab gate# ktutil list ...
gate# cat /etc/ssh/sshd_config
... GSSAPIAuthentication yes ...
client1# cat /etc/ssh/ssh_config
... GSSAPIAuthentication yes ...
Настройка windows клиента (Centrify putty) на использование GSSAPI
Hostname: gate.corpX.un SSH->Auth Attempt "keyboard intractive": no SSH->Kerberos Attempt Kerberos Auth: yes User name portion of user principal name: yes
gate# kinit -V -k -t /etc/krb5.keytab host/gate.corpX.un@CORPX.UN user1@client1$ kinit user1@client1$ kinit -S host/gate.corpX.un@CORPX.UN или user1@client1$ kvno host/gate.corpX.un@CORPX.UN user1@client1$ ssh -vv gate.corpX.un gate# /usr/sbin/sshd -d
Как отключить тестовый режим в windows 7. Включение и выключение тестового режима Windows
Настройка сервера 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 в Ubuntu
Поскольку протокол SSH клиент для его управления является общепринятым стандартом, установить его можно при помощи короткой команды в терминале Ubuntu. для этого запустите сам терминал, нажав комбинацию кнопок на клавиатуре Ctrl + Alt + T, после чего примените команду sudo apt-get install ssh. После подготовки к скачиванию утилита запросит, хотите ли вы продолжить. переключите клавиатуру на русский язык и нажмите Д. На вашем компьютере с Ubuntu установка ssh будет завершена уже через пару секунд. Если вы желаете активировать автоматический запуск при включении системы, используйте для этого команду sudo systemctl enable sshd. соответственно, если потом вы пожелаете убрать службу из автоматического запуска, вам понадобится команда sudo systemctl disable sshd.
Теперь можно проверить, как всё работает. Этого достаточно попробовать подключиться к локальному SSH server: ssh localhost. Утилита обязательно запросит пароль суперпользователя, а также предложит добавить введённый адрес в список разрешённых. Если у вас всё работает, как положено, вы увидите небольшое сообщение, заканчивающиеся уведомление о дате последнего подключения к адресу.
Теперь можно подключаться к любому компьютеру в сети, если вы знаете его IP-адрес и имя пользователя. для этого в терминале вам нужно ввести команду следующего формата:
Например, если вы хотите подсоединиться к компьютеру Васи Пупкина с адресом 132.14.25.10, то команда будет выглядеть следующим образом:
SSH-клиенты для Windows — программы и online — аддоны
PuTTY — клиент для подключения к SSH, Telnet, SCP, SFTP.
PuTTY, пожалуй, один из самых популярных SSH-клиентов для Windows. Популярен он за свою функциональность, быстроту работы, простоту использования. И он бесплатный! Скачайте этот клиент и установите его.
В стартовом окне приветствия сразу можно ввести все параметры подключения, запустить соединение и сразу же приступить к работе. Можно сохранить это подключение на будущее, чтобы каждый раз не вводить все данные заново. Это удобно.
WinSCP
WinSCP — еще одна довольно популярная программа-клиент. С помощью нее можно установить зашифрованное соединение к FTP-серверу удаленной машины путем туннелирования трафика через протокол SSH.
Работает быстро. Интерфейс похож на PuTTY. Ничего сверхъестественного, поэтому разобраться с подключением будет не сложно. Все то же самое: хост, порт, имя пользователя и пароль — все, что требуется для подключения и дальнейшего управления файловой структурой сервера.
Xshell
Xshell — бесплатный для некоммерческого использования клиент.
Преимущества программы: поддержка локальных команд, управление файлами и туннелирование. Имеет простой командный интерфейс. Помимо SSH-протокола поддерживает и другие: RLOGIN, SFTP, TELNET, SERIAL. Для профессиональных пользователей есть куча дополнительных настроек: динамическое перенаправление портов, поддержка сценариев, трассировка, функции настройки безопасности.
Надежный виртуальный хостинг с круглосуточной техподдержкой — скидки до 30%!
Онлайн расширение FireSSH для Firefox
Плагин для одного из популярных браузеров Mozilla Firefox.
Чтобы запустить клиент зайдите в «Меню», затем «Разработка», пункт «FireSSH». Ваш клиент запущен. Вводите ваши данные для подключения во вкладке «Main» и приступайте к работе. Во вкладке «Advanced» можно указать дополнительные параметры SSH-туннелирования. Работает эта штука в режиме онлайн на всех ОС, на которые можно поставить этот браузер.
Установите это расширение из официального репозитория https://addons.mozilla.org/en-US/firefox/addon/firessh/ и перезапустите свой браузер.
Secure Shell — хороший плагин для Google Chrome
Для браузера Google Chrome есть свой плагин ssh-клиент. Называется он Secure Shell.
Установите это расширение в свой браузер. После установки щелкните на пиктограмку, клиент откроется в новой вкладке. В этом окне вы настраиваете параметры подключения и устанавливаете соединение с удаленным сервером. Этот клиент также будет работать в любой ОС, для которой можно установить данный браузер.
Ссылка для установки — https://chrome.google.com/webstore….
VPS SSD хостинг — выбор профессионалов. Только сертифицированное серверное оборудование!
OpenSSH для Cygwin Terminal
Для Windows существует пакет UNIX-подобных утилит. Cygwin — один из таких пакетов. А OpenSSH может быть установлена вместе с ним. Попробуйте эту утилиту, возможно она вам понравится!
В чем ее преимущество? Вы можете использовать команды с синтаксисом для UNIX-платформ в Windows среде. Это удобно для пользователя, который не хочет изучать дополнительные команды для Windows. Установите пакет Cygwin. Во время установки вы можете выбрать установку только отдельно OpenSSH. После установки запускайте утилиту Cygwin Terminal и наслаждайтесь простым консольным терминалом!
Скачать установщик можно на официальном сайте — https://cygwin.com/install.html.
4: Отключение парольной аутентификации
Если вы успешно вошли в свою учетную запись с помощью SSH-ключей, без пароля, вам лучше совсем отключить механизм парольной аутентификации, чтобы защитить сервер от brute-force атак.
Убедившись, что ваша удаленная учетная запись имеет все необходимые привилегии, войдите на свой удаленный сервер с помощью SSH-ключей (либо с правами администратора, либо через пользователя с привилегиями sudo). Затем откройте файл конфигурации демона SSH:
Внутри файла найдите директиву PasswordAuthentication. Она может быть закомментирована. Раскомментируйте эту строку и установите значение «no». Это отключит возможность входа в систему через SSH с использованием паролей учетных записей:
Сохраните и закройте файл. Чтобы обновить настройки, необходимо перезапустить сервис sshd:
В качестве меры предосторожности откройте новое окно и проверьте работу сервиса SSH:
После того как вы подтвердили работу сервиса SSH, можете закрыть все текущие сессии на сервере.
Теперь демон SSH на сервере Ubuntu поддерживает только аутентификацию по SSH-ключам. Парольная аутентификация успешно отключена.
Настройка Ubuntu Server 18.04 после установки
Начнем с обновления системы. Я предполагаю, что сеть у вас уже настроена автоматически. Если это не так, то воспользуйтесь статьей про настройку сети с помощью Netplan.
1. Обновление системы
Первым делом, после завершения установки любой операционной системы ее необходимо обновить. Для этого выполните такие команды:
Чем больше времени прошло с момента релиза установочного образа Ubuntu Server, тем больше времени займет обновление системы, но это необходимая операция. После обновления перезагрузите систему:
2. Настройка SSH
Поскольку это серверная система, то получать к ней доступ мы будем удаленно. Поэтому сразу же после обновления следует настроить SSH и использовать этот протокол для дальнейшей настройки.
Сначала необходимо сменить порт SSH на удаленном сервере, иначе рано или поздно кто-то попытается его перебрать. Откройте файл /etc/ssh/sshd.conf, найдите строчку Port 22 и измените значение порта на другое число, например, на 2323:
Для запуска службы SSH и добавления ее в автозагрузку выполните:
Теперь вы можете авторизоваться на вашем сервере с другой машины. Но каждый раз вводить пароль при входе не очень удобно. Настроем авторизацию по ключу. Для этого на вашей рабочей машине выполните команду для генерации ключа:
Программа спросит вас путь, куда нужно сохранить ключ, не оставляйте по умолчанию, используйте например, ~/.ssh/id_rsa_ubuntu. Затем утилита предложит ввести пароль для ключа. Если вы не хотите вводить этот пароль каждый раз при входе по SSH, то его задавать не нужно. Но в целях безопасности очень не рекомендуется использовать ключи без паролей.
Затем отправьте только что созданный ключ на свой сервер:
Теперь вы сможете авторизоваться на этом сервере без ввода пароля:
Дальнейшую настройку сервера можно проводить через SSH.
3. Настройка брандмауэра ufw
Сервер будет находиться в сети, а поэтому к нему будет иметь доступ множество пользователей. Необходимо спрятать все запущенные на сервере службы с помощью брандмауэра и оставить только разрешенные. В Ubuntu для управления брандмауэром используется надстройка над iptables — ufw.
По умолчанию, после запуска брандмауэр закрывает доступ ко всем не разрешенным службам извне. Мы сейчас работаем на сервере по SSH, поэтому нужно разрешить эту службу:
Если вы изменили стандартный порт SSH на втором шаге, необходимо разрешать именно тот порт, который вы указали:
Затем выполните такую команду для включения ufw:
Далее нужно нажать y для подтверждения. Брандмауэр будет запущен и добавлен в автозагрузку. Вы можете посмотреть его состояние командой:
4. Настройка времени
Установщик не предлагает вам выбрать часовой пояс и по умолчанию остается UTC. Таким образом, вы получаете время по Гринвичу. Вы можете проверить какое время показывает ваш сервер с помощью команды:
Чтобы это изменить нужно добавить свой часовой пояс. Посмотреть доступные часовые пояса можно командой:
А для выбора нужного выполните:
Также желательно настроить NTP сервер, чтобы время автоматически синхронизировалось с серверами в интернете. Для установки NTP выполните:
А затем добавьте его в автозагрузку:
5. Разблокировка пользователя root
В Ubuntu по умолчанию пароль для суперпользователя не задан, поэтому войти от его имени вы не сможете. Если вы хотите иметь возможность логиниться в системе от суперпользователя, или он нужен для системы управления конфигурацией то вы можете задать для него пароль:
И введите новый пароль. Затем вы сможете авторизоваться от имени этого пользователя.
How To Configure SSH
When you change the configuration of SSH, you are changing the settings of the sshd server.
In Ubuntu, the main sshd configuration file is located at .
Back up the current version of this file before editing:
Open it with a text editor:
You will want to leave most of the options in this file alone. However, there are a few you may want to take a look at:
/etc/ssh/sshd_config
The port declaration specifies which port the sshd server will listen on for connections. By default, this is . You should probably leave this setting alone, unless you have specific reasons to do otherwise. If you do change your port, we will show you how to connect to the new port later on.
/etc/ssh/sshd_config
The host keys declarations specify where to look for global host keys. We will discuss what a host key is later.
/etc/ssh/sshd_config
These two items indicate the level of logging that should occur.
If you are having difficulties with SSH, increasing the amount of logging may be a good way to discover what the issue is.
/etc/ssh/sshd_config
These parameters specify some of the login information.
specifies how many seconds to keep the connection alive without successfully logging in.
It may be a good idea to set this time just a little bit higher than the amount of time it takes you to log in normally.
selects whether the root user is allowed to log in.
In most cases, this should be changed to when you have created a user account that has access to elevated privileges (through or ) and can log in through ssh.
is a safety guard that will refuse a login attempt if the authentication files are readable by everyone.
This prevents login attempts when the configuration files are not secure.
/etc/ssh/sshd_config
These parameters configure an ability called X11 Forwarding. This allows you to view a remote system’s graphical user interface (GUI) on the local system.
This option must be enabled on the server and given with the SSH client during connection with the option.
After making your changes, save and close the file by typing and , followed by .
If you changed any settings in , make sure you reload your sshd server to implement your modifications:
You should thoroughly test your changes to ensure that they operate in the way you expect.
It may be a good idea to have a few sessions active when you are making changes. This will allow you to revert the configuration if necessary.
How To Log Into SSH with Keys
While it is helpful to be able to log in to a remote system using passwords, it’s a much better idea to set up key-based authentication.
How Does Key-based Authentication Work?
Key-based authentication works by creating a pair of keys: a private key and a public key.
The private key is located on the client machine and is secured and kept secret.
The public key can be given to anyone or placed on any server you wish to access.
When you attempt to connect using a key-pair, the server will use the public key to create a message for the client computer that can only be read with the private key.
The client computer then sends the appropriate response back to the server and the server will know that the client is legitimate.
This entire process is done automatically after you set up keys.
How To Create SSH Keys
SSH keys should be generated on the computer you wish to log in from. This is usually your local machine.
Enter the following into the command line:
Press enter to accept the defaults. Your keys will be created at ~/.ssh/id_rsa.pub and ~/.ssh/id_rsa.
Change into the directory by typing:
Look at the permissions of the files:
As you can see, the file is readable and writable only to the owner. This is how it should be to keep it secret.
The file, however, can be shared and has permissions appropriate for this activity.
How To Transfer Your Public Key to the Server
If you currently have password-based access to a server, you can copy your public key to it by issuing this command:
This will start an SSH session. After you enter your password, it will copy your public key to the server’s authorized keys file, which will allow you to log in without the password next time.
Настраиваем доступ по SSH
Часть 2.
Перед тем как начнём, давайте создадим нового пользователя с root правами.
Команда
adduser test
Укажем права пользователю test командой
usermod -a -G sudo test
Чтобы убедиться, что пользователь test был добавлен в группу sudo, можно выполнить следующую команду:
id test
Теперь настраим удаленный доступ к серверу по ssh (командная строка), как по локальной сети, так и по интернету
Установим ssh
sudo apt-get install openssh-server
После установки нам необходимо настроить безопасность соединения и непосредственный доступ.
Зайдем в файл с настройками
sudo nano /etc/ssh/sshd_config
По умолчанию, ssh использует порт 22. Заменим его на нестандартный, это повысит безопасность нашего доступа. Порт заменим например на 2200
При подключении по ssh, наш сервер потребует вместо пароля ключ RSA, а не пароль.
Что бы этого не произошло, в параметре RSAAuthentication и PubkeyAuthentication, вписываем «NO».
Так же запрещаем доступ пользователю ROOT, для этого нужно раскомментировать параметр
Authetication: и в параметре PermitRootLogin вписать «NO»
Теперь пропишем доступ пользователям
В строке AllowUsers прописываем пользователей через пробел в виде юзер@хост, т. е. указываем какой пользователь откуда может подключаться.
Можно использовать знак *
Пропишем пользователю test права доступа и разберёмся в них.
-
test@* — пользователь test может подключаться откуда угодно
test@192.168.0.* — пользователь test может подключаться только находясь в 192.168.0.0 подсети
test@192.168.0.104 — пользователь test может подключиться только с ip адреса 192.168.0.104
*@192.168.0.* — все пользователи могут подключаться находясь в 192.168.0.0 подсети
Так же можно запретить доступ определённым пользователям (например пользователю test2), для этого нужно вписать ниже
DenyUsers test2
Запускаем
sudo /etc/init.d/ssh start
Ssh мы настроили. Теперь откроем к нему доступ. Для этого откроем доступ к порту 2200.
В прошлой части мы устанавливали firewall командой arno-iptables-firewall, теперь нужно внести туда изменения.
По этому перенатроим его.
sudo dpkg-reconfigure arno-iptables-firewall
Запустилась настройка
Вписываем порт, который нужно открыть. Так же в этом окне можно вписать и другие порты, если они нуждаются в открытии.
В следующем окне, так же вписваем порт 2200.
Как только вписали порты, можно везде нажимать ENTER и перезагрузить Файрвол.
После этого порт ssh будет доступен из сети
Для повышения безопасности ssh соединения можно настраиваем утилиту denyhosts.
Утилита представляет собой python-скрипт, который анализирует файл /var/log/auth.log
на наличие записей о несанкционированных попытках входа на сервер по ssh и
добавляет ip-адреса, с которых осуществлялись эти попытки в файл /etc/hosts.deny, с которых запрещен вход по ssh.
Установим командой
sudo aptitude install denyhosts
Сразу после установки утилита просканирует файл /var/log/auth.log и добавит ip-адреса,
с которых осуществлялся подбор паролей, в /etc/hosts.deny. На сканирование потребуется время,
если в файле /var/log/auth.log уже много таких записей.
После установки нужно подправить конфигурационный файл
sudo nano /etc/denyhosts.conf
Скорректируем настройку PURGE_DENY на 3 часа. А то мы можем заблокировать доступ
самому себе, введя несколько раз неверный пароль.
PURGE_DENY = 3h
Ещё, для контроля, нужно указать адрес электронной почты для рассылки уведомлений
о неудачных попытках доступа к серверу:
Для того чтобы новые настройки вступили в силу, нужно перезапустить службу denyhosts:
sudo service denyhosts restart
P.S. Если вам понадобиться сменить пароль на учетной записи. Введите команду
passwd user — где user это имя пользователя
P.S.S. Если возникнут проблемы с кодирвкой, то покопайтесь в настройках клиентской программы shh
Самая популярная программа для работы по ssh, программа PuttY.
Схожие статьи
- Настраиваем на Ubuntu Dhcp и Dns сервера, а так же доступ в интернетНастраиваем доступ по SSHНастраиваем VPN PPPTPНастраиваем webminНастраиваем FTP на Ubuntu
Уважаемые посетители сайта, если вам нужна помощь в решении проблем, то оставляйте комментарий в форме, а не Вконтакте. Так я смогу быстре ответить на ваш вопрос
Если есть желание поблагодарить за помощь, просьба поддержать просмотрами видео на канале в YouTube
https://youtube.com/watch?v=videoseries
Или можете помочь проекту материально
Шаг 3 — Аутентификация на вашем сервере Ubuntu с помощью ключей SSH
Если вы успешно выполнили одну из вышеописанных процедур, вы сможете войти на удаленный хост без пароля учетной записи для удаленного хоста.
Базовый процесс выглядит аналогично:
Если вы подключаетесь к этому хосту первый раз (если вы используете указанный выше последний метод), вы сможете увидеть следующее:
Это означает, что ваш локальный компьютер не распознает удаленный хост. Введите «yes» и нажмите , чтобы продолжить.
Если вы не указывали пароль для своего закрытого ключа, вы войдете в систему немедленно. Если вы указали пароль закрытого ключа при создании ключа, вам будет предложено ввести его сейчас (для безопасности вводимые символы не будут отображаться в сеансе терминала). После аутентификации в оболочке откроется новый сеанс с настроенной учетной записью на сервере Ubuntu.
Если аутентификация на базе ключа выполнена успешно, вы можете перейти к изучению дополнительных возможностей защиты системы посредством отключения аутентификации с помощью пароля.
Шаг 1 — Создание пары ключей RSA
Сперва создадим пару ключей на клиентской машине (обычно, это ваш компьютер):
По умолчанию создаёт 2048-битную пару ключей RSA, которая достаточно безопасна для большинства сценариев использования (вы можете также добавить к этой команде флаг для получения 4096-битный ключей).
После ввода этой команды вы должны увидеть следующий вывод:
Нажмите Enter для сохранения пары ключей в директорию внутри вашей домашней директории или задайте другую директорию.
Если ранее вы уже генерировали пару SSH ключей, вы можете увидеть следующий вывод:
Если вы выберете перезаписать ключи на диск, вы не сможете использовать старые ключи для аутентификации. Будьте очень осторожны при выборе , это решение нельзя будет отменить.
Вы должны увидеть следующий вывод:
Здесь вы можете задать ключевую фразу (passphrase), что обычно рекомендуется сделать. Ключевая фраза добавляет дополнительный уровень безопасности для предотвращения входа на сервер неавторизованных пользователей. Для того, чтобы узнать больше о том, как это работает, рекомендуем ознакомиться с нашим руководством по настройке аутентификации по ключам SSH на серверах Linux.
Вы должны увидеть следующий вывод:
Теперь у вас есть пара из публичного и секретного ключей, которые вы можете использовать для аутентификации. Далее мы поместим публичный ключ на ваш сервер, для того, чтобы вы могли использовать аутентификацию по ключам SSH для входа.
Conclusion #
You have learned how to install and enable SSH on your Ubuntu 18.04. You can now login to your machine and perform common sysadmin tasks through the command prompt.
By default, SSH listens on port 22. Changing the default SSH port adds an extra layer of security to your server by reducing the risk of automated attacks.
If you are managing multiple systems, you can simplify your workflow by defining all of your connections in the SSH config file .
For more information, about how to configure your SSH server read the Ubuntu’s SSH/OpenSSH/Configuring guide and the official SSH manual page.
If you have any questions, please leave a comment below.
ssh ubuntu
3: Аутентификация по SSH-ключам
Скопировав открытый ключ, вы сможете войти на удаленный хост без пароля учетной записи удаленного пользователя.
Введите:
Если вы впервые подключаетесь к этому хосту (если вы копировали ключ вручную), вы можете увидеть такое предупреждение:
Это означает, что ваш локальный компьютер не распознает удаленный хост. Введите yes и нажмите Enter.
Если вы не установили парольную фразу для закрытого ключа, вы сразу же войдете в систему
Если вы создали парольную фразу, вам будет предложено ввести ее сейчас (обратите внимание, что вводимая вами фраза не будет отображаться в терминале из соображений безопасности). После аутентификации в новом сеансе оболочки вы получите доступ к удаленному пользователю
Если аутентификация по ключам прошла успешно, можно отключить парольную аутентификацию, чтобы повысить безопасность удаленной машины.
Графики бинарных опционов: понятие, виды, анализ
Не инициализируется жесткий диск: находим причины и устраняем проблему
Basic Syntax
To connect to a remote system using SSH, we’ll use the command. The most basic form of the command is:
The in this example is the IP address or domain name that you are trying to connect to.
This command assumes that your username on the remote system is the same as your username on your local system.
If your username is different on the remote system, you can specify it by using this syntax:
Once you have connected to the server, you may be asked to verify your identity by providing a password. Later, we will cover how to generate keys to use instead of passwords.
To exit the ssh session and return back into your local shell session, type:
Основные команды SFTP
Оказавшись в командной строке можно получить список доступных команд с помощью команды
> help Available commands: bye Quit sftp cd path Change remote directory to 'path' chgrp grp path Change group of file 'path' to 'grp' chmod mode path Change permissions of file 'path' to 'mode' chown own path Change owner of file 'path' to 'own' df Display statistics for current directory or filesystem containing 'path' exit Quit sftp get remote Download file reget remote Resume download file reput remote Resume upload file help Display this help text lcd path Change local directory to 'path' lls ] Display local directory listing lmkdir path Create local directory ln oldpath newpath Link remote file (-s for symlink) lpwd Print local working directory ls Display remote directory listing lumask umask Set local umask to 'umask' mkdir path Create remote directory progress Toggle display of progress meter put local Upload file pwd Display remote working directory quit Quit sftp rename oldpath newpath Rename remote file rm path Delete remote file rmdir path Remove remote directory symlink oldpath newpath Symlink remote file version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell ? Synonym for help
Текущий рабочий каталог:
> pwd # удаленный рабочий каталог > lpwd # локальный рабочий каталог
Изменить рабочую директорию:
> cd uploads # сменить директорию на удаленной системе > lcd uploads # сменить директорию на локальной системе
Список файлов и директорий:
> ls # список на удаленной системе > lls # список на локальной системе
Загрузить на удаленную систему файл или директорию:
> put image.jpg # загрузить файл > put -r images/ # загрузить директорию
Скачать с удаленной системы файл или директорию:
> get image.jpg # скачать файл > get -r images/ # скачать директорию
Создать директорию:
> mkdir images # создать директорию на удаленной системе > lmkdir images # создать директорию на локальной системе
Удалить директорию:
> rmdir images # удалить директорию на удаленной системе > !rmdir images # удалить директорию на локальной системе
Выполнить произвольную команду на локальной системе:
> !команда
Выполнить несколько команд на локальной системе:
> ! # временно выходим из командной строки sftp $ команда # выполняем команду в shell (bash) $ команда # выполняем команду в shell (bash) $ exit # возвращаемся к командной строке sftp >
Завершить сеанс:
> exit # или quit или bye
Поиск:
CLI • Linux • SSH • Ubuntu • Директория • Конфигурация • Настройка • Сервер • Файл • SFTP
Как подключиться по SSH с помощью пароля
Обычное подключение по SSH без дополнительных опций выглядит очень просто. Достаточно ввести логин, IP сервера и пароль. Допустим хостинг-провайдер нам выдал следующие данные после покупки сервера:
- IP-адрес сервера: 80.90.255.255
- Логин: root
- Пароль: xvFkWsIys
Исходя из этого мы формулируем команду в следующем виде
Если подключение осуществляется впервые, то утилита задаст вопрос, стоит ли добавлять в список доверенных хостов. Соглашаемся, набрав и нажав Enter.
:~$ ssh The authenticity of host '80.90.255.255 (80.90.255.255)' can't be established. ECDSA key fingerprint is SHA256:8CbYK1TqAF3f1iSYLoUjSkurPQ0ve5I0GunB7lnPs+k. Are you sure you want to continue connecting (yes/no)? yes
Далее утилита запросит пароль пользователя
's password:
Его можно ввести вручную или вставить из буфера обмена. При вводе пароля не будут появляться звездочки или какие-либо условные символы, это нормально. После ввода пароля вы попадаете в командную строку сервера, к которому подключались. Это значит, что теперь все введенные команды будут выполнятся именно на сервере.
's password: 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. :~#
Как открыть Центр уведомлений в macOS
Шаг 4 — Отключение аутентификации с помощью пароля на сервере
Если вы смогли войти в свою учетную запись с помощью SSH без пароля, это означает, что вы успешно настроили для своей учетной записи аутентификацию на базе ключей SSH. Однако механизм аутентификации по паролю все еще активен, то есть ваш сервер может подвергнуться атаке посредством простого перебора паролей.
Прежде чем выполнять описанные в настоящем разделе шаги, убедитесь, что вы настроили аутентификацию на базе ключей SSH для учетной записи root на этом сервере, или (предпочтительно) вы настроили аутентификацию на базе ключей SSH для учетной записи сервера без привилегий root и с привилегиями
На этом шаге вход в систему по паролю будет заблокирован, поэтому очень важно сохранить возможность доступа с правами администратора
Подтвердив права администратора для удаленной учетной записи, выполните вход на удаленный сервер с помощью ключей SSH как пользователь с привилегиями root или как пользователь с привилегиями . Затем откройте файл конфигурации демона SSH:
Найдите в файле директиву . Эта строка может быть прокомментирована с помощью в начале строки. Раскомментируйте строку, удалив , и установите значение . После этого вы не сможете выполнять вход в систему через SSH с использованием паролей учетной записи:
/etc/ssh/sshd_config
Сохраните и закройте файл, нажав , затем нажмите для подтверждения сохранения файла, а затем нажмите для выхода из nano. Для фактической активации этих изменений нужно перезапустить службу :
В качестве меры предосторожности откройте новое окно терминала и проверьте правильность работы службы SSH, прежде чем закрывать этот сеанс:
После проверки корректной работы службы SSH вы можете безопасно закрыть все текущие сеансы сервера.
Теперь демон SSH на вашем сервере Ubuntu будет реагировать только на аутентификацию с помощью ключей SSH. Логины на базе пароля были отключены.
Заключение
Мы рассказали об основных настройках протокола SSH, которые помогут уберечь Ubuntu-сервер от несанкционированного доступа
Особенно важно их использовать при расположении сервера в публичных облаках с публичным IP-адресом. На скриншоте ниже вы видите журнал безопасности системы, на которой мы проводили перечисленные в этой статье настройки
В нем видно, что попытки авторизаций под разными пользователями (root, system и другими) происходят регулярно.
Перечисленных в этой статье настроек достаточно для обеспечения базовой безопасности сервера и предотвращения его вовлечения в бот-сети.