Ssh — OpenSSH SSH client (remote login program)

Ssh — OpenSSH SSH client (remote login program) Техника

Authored by:  John Abercrombie


  1. /etc/ssh/sshd_config
    
  2. #PermitRootLogin no
    
  3. PermitRootLogin yes
    
  4. Save and close your text editor.

  5. sshd -t
    
    sudo sshd -t
    
    [root@testserver ~]# sshd -t
    [root@testserver ~]#
    
  6.  service sshd reload
    

    In CentOS 7 and later, you can use the systemctl reload sshd command instead of the service
    command to reload SSH. However, service works in both CentOS and the Ubuntu operating system.

  7. service sshd status
    

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License

Ssh — OpenSSH SSH client (remote login program)

See license specifics and DISCLAIMER

  1. Shared Memory
  2. SSH Settings
  3. «su» program available to non-admin users
  4. Disable IPv6
none     /run/shm     tmpfs     defaults,ro     0     0

This will mount /run/shm in read-only mode. If you have a good reason to keep it writable, put this line in /etc/fstab instead:

none     /run/shm     tmpfs     rw,noexec,nosuid,nodev     0     0

The changes will take effect the next time you reboot, unless you remount /run/shm with the command sudo mount -o remount /run/shm.

Note: MANY programs will not work if you make /run/shm read-only (e.g. Google Chrome).

Note also that on Ubuntu 8.10, if you make /dev/shm read-only, then reboot, the mount command will show that /dev/shm has not been mounted as read-only and the output will look like this:

sudo mount -o remount /dev/shm

Enable Root Login via SSH in Ubuntu 20.04

To let this tutorial work better, please consider the below Prerequisites:

Содержание
  1. Set Root password
  2. Configure SSH config to permit root login
  3. Loggin as root
  4. Allow SSH root login on Debian
  5. How to Enable root login over SSH 
  6. Step 1
  7. Step 2
  8. Step 3
  9. Step 4
  10. Conclusion
  11. If you like what you are reading, please:
  12. Копируем ключи ssh на сервер
  13. Запрещаем вход по ssh через пароль
  14. Почему пользователь root не может подключиться по SSH с верным паролем. Как запретить или разрешить подключение root по SSH
  15. Читайте также
  16. Как разрешить подключение только с определённого IP или группы IP. Как заблокировать определённые IP для SSH
  17. SSH Settings
  18. SSH Root Login
  19. SSH Login Grace Time
  20. SSH Allowed Users
  21. Disable Password Authentication
  22. Use SFTP instead of FTP
  23. Настройка журналов SSH сервера
  24. Как разрешить или запретить пользователям входить через SSH
  25. Другие важные опции командной строки сервера SSH
  26. Как настроить SSH сервер (sshd)
  27. Как изменить порт, на котором работает сервер OpenSSH
  28. Перезапуск службы SSH
  29. Disable IPv6
  30. Шаблоны в файле настроек SSH
  31. Как выбрать интерфейс (IP) для прослушивания
  32. Оглавление
  33. Как проверить конфигурационный файл сервера SSH без запуска службы
  34. Запуск SSH без отсоединения от терминала
  35. Запуск сервера SSH с другим конфигурационным файлом
  36. Другие опции sshd
  37. «su» program available to non-admin users
  38. Запрет и разрешение входа в SSH по паролю обычным пользователям
  39. Разрешение входа без пароля

Set Root password

sudo passwd root

you succeed to change the root password, now you need to change some configuration on for the permit root login.

Configure SSH config to permit root login

nano /etc/ssh/sshd_config

permit root login display

As you see, the is set to No. It means that the root login via SSH has been disabled. So, to enable root login change the to . Find PermitRootLogin and delete No or without-password and type .

PermitRootLogin without-password
PermitRootLogin yes

After edit the SSH config file, press and button twice for save and exit.

Restart SSH service for loading new configuration on SSH_config file.

sudo systemctl restart sshd
sudo service sshd restart

Enable Root Login Via SSH In Debian 10

To let this tutorial work better, please consider the below Prerequisites:

Loggin as root

Allow SSH root login on Debian

Since the PermitRootLogin parameter controls the ssh root permission, you must change its values. The parameter is /etc/ssh/sshd_config and the value of the PermitRootLogin is ”without-password”. So, you need to ser PermitRootLogin to yes to Permit root login.

How to Enable root login over SSH 

Open the ssh configuration file and use your favorite text editor.

nano /etc/ssh/sshd_config

Then, Search for PermitRootLogin and change its value to “Yes”. If the line exists and is commented out with a ”#”, remove the ”#”.

PermitRootLogin yes

Now, you can save the updated /etc/ssh/sshd_config file and restart the SSH server. Use the command below to do this:

systemctl restart sshd

In this article you will learn How to Allow SSH Root Login on Ubuntu 20.04 LTS Linux step by step.

ubuntu 20.04 ssh root access denied

But root SSH login can be enabled by editing OpenSSH daemon (sshd) configuration.

WARNING! Using SSH root login is a bad idea!

Step 1

$ vim /etc/ssh/sshd_config

Step 2

Find commented PermitRootLogin parameter or manually add

PermitRootLogin yes

As shown on image:

Allow SSH Root Login on Ubuntu

Step 3

After finish editing configuration file save and close it.

For the changes to take effect, you must restart sshd daemon.

$ sudo systemctl restart ssh

Step 4

Now we need set password for the root with using passwd command:

$ sudo passwd root
$ sudo passwd root
New password:
Retype new password:
passwd: password updated successfully

Now you will be able SSH login as root to your Ubuntu server

$ ssh [email protected]

Conclusion

Enable SSH Root Login on Ubuntu

To enable Root Login on Ubuntu edit sshd daemon configuration PermitRootLogin parameter to:

1. PermitRootLogin yes
2. Save changes
3. Restart sshd daemon
4. Set password for the root with using passwd command

Discuss article in ArsTech Forum

Read also: How To Setup SSH: Public Key Authentication On Linux

 

 

If you like what you are reading, please:

Buy me a coffeeBuy me a coffee

I have a VPS with Ubuntu 14.04. I need to login as root to my server over SSH.

I set a password for root: sudo passwd root
then enabled it: sudo passwd -u root
then rebooted my vps: sudo reboot

belacqua's user avatar

22 gold badges87 silver badges108 bronze badges

asked Aug 15, 2014 at 21:13

user2517728's user avatar

The default on Ubuntu 14.04 in /etc/ssh/sshd_config is

PermitRootLogin without-password

To login as root, I recommend setting up key-based SSH login. Another (dangerous!) possibility is to change the option to PermitRootLogin yes.

muru's user avatar

53 gold badges469 silver badges719 bronze badges

answered Aug 15, 2014 at 21:24

gregory.0xf0's user avatar

sudo cp /etc/configthing.conf /etc/configthing.conf.orig or

sudo rm -i /var/log/syslog.3.gz

belacqua's user avatar

22 gold badges87 silver badges108 bronze badges

answered Aug 15, 2014 at 22:15

Jagarti's user avatar

sudo tail -f /var/log/auth.log

and then (without closing that session), trying to log in as root via SSH and observe the authentication error messages appearing in the first session.

You should be able to figure out the reason you’re unable to log in as root from there, otherwise posting /etc/ssh/sshd_config might get you an answer more quickly.

answered Aug 16, 2014 at 2:49

Marcin Kaminski's user avatar

There are many examples online so I will not repeat them.

The one thing they do not say is you need:

ssh-add [path_to_key]

when using a custom name (not default) for the key.

If you insist on only using a password not a public-private key pair:

ssh root@server-ip-or-hostname

and type your pass.

Nikolay Kostov's user avatar

answered Aug 16, 2014 at 3:11

BAR's user avatar


ssh-keygen -t rsa
ssh root 1

Ну а теперь переходим на сервер и редактируем конфигурационный файл ssh. Этот конфигурационный файл расположен в каталоге etc/ssh/sshd_config. Для редактирования вводим следующую команду:

nano etc/ssh/sshd_config
ssh root 2

Тут нам нужно найти пункт “PermitRootLogin” и отредактировать его. По умолчанию этот пункт имеет значение “without-password или prohibit-password”. А так же он закоментирован, давайте сначала его раскоментируем. После чего приведем его к следующему виду:

PermitRootLogin yes 
ssh root 3
ssh root 4

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

systemctl restart ssh || systemctl restart sshd
ssh root 5
ssh root@192.168.0.112 
ssh root 6

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

ssh-copy-id root@192.168.0.112
ssh root 7
ssh root@192.168.0.112
ssh root 8

Запрещаем вход по ssh через пароль

Ну а теперь самое время запретить вход по паролю. Для этого нужно отредактировать файл sshd_config. Заменив в нем пункт PasswordAuthentication yes на no, а так же его раскоментировав:

Дополнительно:  [РЕШЕНО] Ноутбук не подключается к WiFi, а телефон подключается
ssh root 10

После чего нам нужно снова перезапустить службу ssh командами:

systemctl restart ssh || systemctl restart sshd

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

ssh root 11
ssh root 12

Почему пользователь root не может подключиться по SSH с верным паролем. Как запретить или разрешить подключение root по SSH

Permission denied, please try again.
Permission denied (publickey,password).

То проверьте значение директивы PermitRootLogin:

#PermitRootLogin prohibit-password

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

Директива PermitRootLogin определяет, может ли root выполнить вход используя ssh. Аргументами могут быть: yes, prohibit-password, forced-commands-only или no. Значением по умолчанию является prohibit-password.

Если эта опция установлена на prohibit-password (или устаревший псевдоним without-password), то вход по паролю и интерактивная аутентификация с клавиатуры отключены для пользователя root.

Если эта опция установлена на forced-commands-only, вход root с аутентификацией по публичному ключу будет разрешён, но только если была указана опция ForceCommand с командой (это может быть полезно для получения удалённых бэкапов, даже если нормальный вход root не разрешён). Все другие методы аутентификации отключены для root.

Если эта опция установлена на no, то root’у не разрешён вход вовсе.

Если опция установлена на yes, то разрешён вход для рута без ограничений.

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

SSH — (Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP— соединений (например, для передачи файлов).
Далее рассматривается OpenSSH (демон sshd) альтернатива проприетарного ПО от SSH Communications Security. OpenSSH (открытая безопасная оболочка) — набор программ, предоставляющих шифрование сеансов связи по компьютерным сетям с использованием протокола SSH.

Какой порт у SSH? SSH сервер обычно прослушивает соединения на TCP -порту 22.
Ssh — OpenSSH SSH client (remote login program)

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

 rootyour_server_ip

И делаем свое черное дело =) список здесь список здесь.

По делу: не работайте от root, пожалуйста!

Пример подключения к удаленному нестандартному:-) серверу, который настраивал нестандартный:-) админ, для этого используем ключ -p задания порта и ключ -i для задания ssh ключа (в случае беспарольной аутентификации):

     id_divinity syperadminsuperserver.com
adduser remuserbak

Вам будет задано несколько вопросов, начиная с пароля учетной записи.

Введите надежный пароль и, при желании, введите любую дополнительную информацию. Это не обязательно, и вы можете просто нажать ENTER в любом поле, которое хотите пропустить.

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

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

usermod   remuserbak

Проверим командой id добавился ли пользователь в группу sudo

 remuserbak
=remuserbak =remuserbak =remuserbak,

После установки сервера SSH, первым делом исправить файл sshd_config. В нем запретить удалённый доступ пользователя root и разрешить доступ только для доверенных пользователей. Настраиваем от непривилегированного пользователя, используя sudo.

Первое действие перед правкой любого файла — это бекап этого файла, делаем:

remuserbak@vps:~$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
[sudo] password for remuserbak:

Посмотреть текущее настройки демона ssh

 sshd 
  etcsshsshd_config
 

PermitRootLogin no # запретить удалённый доступ для root
AllowUsers remuserbak user1 user2 # список пользователей, которым разрешён доступ по SSH

После внесения изменений в sshd_config — перегружаем демона SSH.

$  systemctl restart ssh.service
или
$  service sshd restart
User root from 222.187.238.57 not allowed because not listed  AllowUsers

Всё, у вас демон SSH минимально защищен!

Дополнительные параметры sshd_config, которые можно менять, под ваши задачи и условия, но не делайте это без нужды и предварительно изучите руководство man 5 sshd_config

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

Вместо использования паролей, с помощью ssh-keygen можно создать ключи DSA или RSA, которыми пользователи могут аутентифицироваться. Ключи RSA являются наиболее широко используемыми и создаются по умолчанию.
Немножко терминов:

Итак: делаем ssh-ключи для беспарольной авторизации.

$     rsa  ~.sshwork_key  "Key for Work stuff"
$     rsa  ~.sshmyvps  "Key for vps"

Мы обзавелись ключами, раскидали их публичные части (pub) в authorized_keys соответствующих удаленных хостов (например командой ssh-copy-id):

ssh-copy-id  work_key.pub USERHOST

Для включения аутентификации по ключам, публичный ключ (расширение .pub) должен быть помещен в файл ~/.ssh/authorized_keys на удаленном компьютере, например так:

 ~.sshid_rsa.pub   rootip-адрес-сервера 'cat >> ~/.ssh/authorized_keys'

или второй способ копирования более простой и правильный, но не передающий в отличии от первого способа, что происходит в реальности

ssh-copy-id  .sshid_rsa.pub remuserbakxxx.xxx.xxx.xxx

Теперь определим с каким ключём куда ходить:

$ touch ~/.ssh/config
$ chmod 600 ~/.ssh/config

с содержимым, например

IdentityFile ~/.ssh/work_key
IdentityFile ~/.ssh/myvps

Host *.company.org
  IdentityFile ~/.ssh/work_key
  User workusername
 
Host 127.65.43.21
  IdentityFile ~/.ssh/myvps
  User bliznezz
  Port 22322

Обычно каждый пользователь, желающий использовать SSH с RSA или DSA аутентификацией, запускает его единожды для создания аутентификационного ключа в $HOME/.ssh/identity, $HOME/.ssh/id_dsa или $HOME/.ssh/id_rsa.

Обычно эта программа генерирует ключи и спрашивает название файла в котором надо сохранить приватный ключ. Публичный ключ будет сохранен в файле с тем же именем, только к нему будет добавлено расширение «.pub». Программа также спросит у вас ключевую фразу. Ключевая фраза может быть пустой, это означает, что ключевая фраза не используется (ключ машины должен иметь пустую ключевую фразу), или это может быть строка произвольной длины. Ключевая фраза схожа с паролем, за исключением того, что ключевая фраза может состоять из набора слов, знаков препинания, цифр, пробелов или любого набора символов, какой вы пожелаете. Хорошими считаются ключевые фразы из 10-30 символов, не являющиеся простыми предложениями или легко угадываемыми (английская проза имеет только 1-2 бита энтропии на символ и обеспечивает очень плохие ключевые фразы) и содержать чередование букв, цифр и не буквенно-цифровых, набранных в верхнем и нижнем регистре, знаков. Ключевая фраза может быть позднее изменена при помощи опции -p.

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

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

Задача. На удаленном компьютере Anacron запускает скрипт для резервирования БД PostgreSQL один раз в сутки. Нужно создать скрипт который будет копировать удаленные backup-копии на локальный сервер бекапов. Скрипт запустим при помощи Использование планировщика cron в Linux.

$ ssh-keygen -t dsa
$ ls
id_dsa  id_dsa.pub
$ chmod 600 id_dsa

Поместим публичный ключ файл ~/.ssh/authorized_keys на удаленном компьютере.

$ ssh-copy-id -i id_dsa.pub USER@HOST
 
# Copy PostgreSQL
 
=
=
=
=
 
  

Создание ssh ключей для виртуальной Linux в Microsoft Azure. Для создания и использования ключей SSH с Azure выполните описанные ниже действия.

 .ssh
  rsa        azuressh 

Будут созданы два ключа azuressh и публичный azuressh.pub. Чтобы без ошибок скопировать содержимое azuressh.pub и вставить его в поле при создании VE, используйте ssh-keygen. Весь вывод, без исключений нужно копировать.

Дополнительно:  Не работает NumPad (цифровой блок) на Windows. Как исправить?

   azuressh.pub
 BEGIN SSH2 PUBLIC KEY 
Comment: 

Не забудьте настроить файл config, для большего удобства.

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

Как разрешить подключение только с определённого IP или группы IP. Как заблокировать определённые IP для SSH

AllowUsers johndoe@192.168.1.* admin2@192.168.1.* otherid1 otherid2
AllowUsers *@192.168.1.100
AllowUsers *@ИМЯ_ХОСТА

Возможно ограничить ключ ssh или ключ на основе ca набором адресов в файле .ssh/authorized_keys домашнего каталога данного пользователя:

from="192.168.1.*,192.168.2.*" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABA...etc...mnMo7n1DD useralias

SSH Settings

While the SSH daemon is secure enough for most people, some may wish to further enhance their security by changing certain sshd settings. Some settings which could be changed to enhance security are given here. All changes, unless otherwise stated, are made in the /etc/ssh/sshd_config file. Lines with a pound sign (#) are commented and not read. To edit this file from a terminal:

sudoedit /etc/ssh/sshd_config

For a Gnome editor, press Alt+F2 and use:

gksudo gedit /etc/ssh/sshd_config

For a KDE editor, press Alt+F2 and use:

kdesu kate /etc/ssh/sshd_config

Please remember, after making any changes, sshd must be restarted, which can be done from the terminal with this command:

service ssh restart

On older versions, e.g. Ubuntu 8.10, the above command might not work, so you may need to run this command instead:

sudo /etc/init.d/ssh restart

SSH Root Login

PermitRootLogin yes

with this line:

PermitRootLogin no

Sometimes it is necessary to allow root logins when doing automated tasks such as backups. To disallow normal logins but allow forced commands, you can use:

PermitRootLogin forced-commands-only

See man (5) sshd_config for details.

SSH Login Grace Time

LoginGraceTime 120

with this line:

LoginGraceTime 20
#Banner /etc/issue.net

so it looks like this:

Banner /etc/issue.net
***************************************************************************
                            NOTICE TO USERS


This computer system is the private property of its owner, whether
individual, corporate or government.  It is for authorized use only.
Users (authorized or unauthorized) have no explicit or implicit
expectation of privacy.

Any or all uses of this system and all files on this system may be
intercepted, monitored, recorded, copied, audited, inspected, and
disclosed to your employer, to authorized site, government, and law
enforcement personnel, as well as authorized officials of government
agencies, both domestic and foreign.

By using this system, the user consents to such interception, monitoring,
recording, copying, auditing, inspection, and disclosure at the
discretion of such personnel or officials.  Unauthorized or improper use
of this system may result in civil and criminal penalties and
administrative or disciplinary action, as appropriate. By continuing to
use this system you indicate your awareness of and consent to these terms
and conditions of use. LOG OFF IMMEDIATELY if you do not agree to the
conditions stated in this warning.

****************************************************************************

SSH Allowed Users

AllowUsers jsmith tallen
AllowUsers jsmith@192.168.0.2 tallen
sudo addgroup sshlogin

Using the example name of ‘sshlogin’, you would then add this line to your sshd configuration file:

AllowGroups sshlogin

Disable Password Authentication

One may also tighten security by forcing public key authentication and disabling password authentication entirely. While this greatly enhances security and completely defeats brute-force attacks, it will lock you out of the machine if you lose your private key. Use with caution.

On the client, generate a key pair with a strong passphrase using:

$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/<username>/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/<username>/.ssh/id_rsa.
Your public key has been saved in /home/<username>/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx <username>@<client hostname>
$ ssh-copy-id -i /home/<username>/.ssh/id_rsa.pub <username>@<server hostname>

Verify you can login to the server with your new key:

$ ssh <username>@<server hostname>
Enter passphrase for key '/home/<username>/.ssh/id_rsa':
<username>@<server hostname:~$

Once you have verified you can login to the server with your new key pair, update /etc/ssh/sshd_config on the server to have:

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
PasswordAuthentication no

Use SFTP instead of FTP

In /etc/ssh/sshd_config, change

Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Match User alice
  ChrootDirectory %h/public_html
  X11Forwarding no
  AllowAgentForwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp

Now alice can use SFTP to read from and write to her ~/public_html/ directory, but can’t use OpenSSH to get a shell, nor even to read files outside of ~/public_html.

Chrooting SFTP was considerably more tedious in Ubuntu 8.04 (Hardy) and earlier, where ChrootDirectory was not available. For FTP on such systems, consider vsftpd: it is more security-conscious than other FTP implementations.

Настройка журналов SSH сервера

Служба SSH не ведёт свой собственный лог и записывает события в системный журнал. О том, как его просмотреть, обратитесь к разделу «Как проверить журнал событий SSH службы».

Можно настроить подробность ведения журнала — уровень вербальности, то есть какие именно сообщения будут записываться в этот журнал. Для этого используется директива LogLevel. Её значем по умолчанию является INFO. Также доступны следующие варианты:

  • QUIET
  • FATAL
  • ERROR
  • INFO
  • VERBOSE
  • DEBUG
  • DEBUG1
  • DEBUG2
  • DEBUG3

DEBUG и DEBUG1 являются эквивалентами. DEBUG2 и DEBUG3 — каждый указывает на более высокие уровни вывода отладочной информации.

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

Как разрешить или запретить пользователям входить через SSH

AllowUsers alice bob

Другие важные опции командной строки сервера SSH

Указывает путь к файлу сертификата для идентификации sshd во время обмена ключами. Файл сертификата должен соответствовать файлу ключа хоста, указанному с помощью параметра -h или директивы конфигурации HostKey.

Указывает файл, из которого читается ключ хоста. Эта опция должна быть указана, если sshd не запускается от имени пользователя root (поскольку обычные файлы ключей хоста как правило не читаются никем, кроме root). По умолчанию это /etc/ssh/ssh_host_ecdsa_key, /etc/ssh/ssh_host_ed25519_key и /etc/ssh/ssh_host_rsa_key. Можно иметь несколько файлов ключей хоста для разных алгоритмов ключей хоста.

Добавить журналы отладки в файл_журнала вместо системного журнала.

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

Может использоваться для задания параметров в формате, используемом в файле конфигурации (sshd_config). Это полезно для указания параметров, для которых нет отдельного флага командной строки. Самые важные директивы конфигурационного файла рассмотрены выше.

Указывает порт, на котором сервер прослушивает соединения (по умолчанию 22). Допускается использование нескольких портов. Порты, указанные в файле конфигурации с параметром «Port», игнорируются, если указан порт командной строки. Порты, указанные с помощью параметра ListenAddress, переопределяют порты командной строки.

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

Как настроить SSH сервер (sshd)

Служба sshd считывает настройки из конфигурационного файла /etc/ssh/sshd_config. Этот файл содержит пары «ключевое слово — аргумент», одна пара на одной строке. Для каждого ключевого слова будет использовано первое полученное значение (исключение составляют несколько директив, которые можно использовать несколько раз, и каждого значение будет учтено, например это Port и ListenAddress).

Ssh — OpenSSH SSH client (remote login program)

Опционально аргументы можно заключить в двойные кавычки («), чтобы передать аргументы, содержащие пробелы.

Ключевые слова не чувствительны к регистру, а аргументы чувствительны к регистру.

Многие директивы закомментированы, но они указывают на значение по умолчанию, которое всё равно используется. Если вас устраивает значение по умолчанию, то не нужно ничего менять. Если же вы хотите другое значение, то нужно раскомментировать строку с соответствующей директивой (убрать символ #) и внести изменения.

Дополнительно можно указать опции командной строки — они имеют приоритет над настройками в конфигурационном файле.

Как изменить порт, на котором работает сервер OpenSSH

Все настройки выполняются в файле /etc/ssh/sshd_config или в строке команды запуска sshd.

Для sshd.socket смена прослушиваемого службой порта происходит иначе. 

Дополнительно:  Получить root права для note 3

Если вы используете sshd.service (объяснения в первой части), то смена порта также происходит в файле /etc/ssh/sshd_config. Для этого раскомментируйте директиву Port и укажите новое значение:

Port 2222

Опцию Port разрешено использовать несколько раз.

Также порт можно установить с помощью ListenAddress.

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

sudo systemctl edit sshd.socket

Там можно указать только порт:

[Socket]
ListenStream=
ListenStream=23456

А также IP и порт:

[Socket]
ListenStream=
ListenStream=172.0.0.1:12345

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

Для sshd.socket другие настройки, как обычно, в файле /etc/ssh/sshd_config. Но директивы Port и ListenAddress будут игнорироваться (если выбрано прослушивание сокета).

Перезапуск службы SSH

Если между sshd.service и sshd.socket (подробности в разделе «Управление службой OpenSSH») вы выбрали запуск sshd.service, то чтобы внесённые в конфигурационный файл изменения вступили в силу, необходимо перезапустить службу:

sudo systemctl restart sshd.service

Для sshd.socket перезапуск службы требуется только при изменении номера порта (как это показано ниже) и делается так:

sudo systemctl restart sshd.socket

Disable IPv6

IPv6 is enabled on Ubuntu by default. Most firewalls only apply to IPv4, and completely ignore IPv6. If you don’t use IPv6 at all, you can prevent it loading at boot time by changing alias net-pf-10 ipv6 to alias net-pf-10 off in /etc/modprobe.d/aliases, and scheduling a reboot.


Шаблоны в файле настроек SSH

Шаблон состоит из нуля или более символов, которые не являются белыми пробелами, ‘*’ (подстановочного символа, который соответствует нулю или более символам), а также ‘?’ (подстановочный символ, который соответствует ровно одному любому символу). Например, чтобы охарактеризовать любой хост в наборе доменов «.co.uk» можно использовать следующий шаблон:

Host *.co.uk
Host 192.168.0.?

Список шаблонов — это несколько шаблонов, разделённых запятой. Шаблоны внутри списка могут иметь противоположное значение если перед ними стоит восклицательный знак («!»). Например, для разрешения ключа использовать откуда угодно внутри организации, кроме пула «dialup», можно использовать следующее (в authorized_keys):

from="!*.dialup.example.com,*.example.com"

Помните, что отрицательное совпадение никогда само по себе не даст положительных результатов. Например, попытка сопоставить хост «host3» следующими списку шаблонов не найдёт совпадений:

from="!host1,!host2"

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

from="!host1,!host2,*"

Как выбрать интерфейс (IP) для прослушивания

В системе может быть несколько сетевых интерфейсов с несколькими IP адресами, по умолчанию sshd прослушивает их все, в том числе IPv6 адреса:

ListenAddress 0.0.0.0
ListenAddress ::

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

ListenAddress 192.168.1.20

Кстати, смотрите статью «Как настроить Kali Linux на использование статичного IP адреса».

Директиву ListenAddress можно использовать несколько раз в одном конфигурационном файле. Разрешены следующие форматы:

ListenAddress hostname|address [rdomain domain]
ListenAddress hostname:port [rdomain domain]
ListenAddress IPv4_address:port [rdomain domain]
ListenAddress [hostname|address]:port [rdomain domain]

Если порт не указан, то sshd будет прослушивать на указанном порту в соответствии со всеми установленными опциями Port в этом файле.

Квалификатор rdomain является необязательным, он имеет отношение к маршрутизации.

Также обратите внимание, что с ListenAddress обязательно должен быть указано имя хоста (адрес) ИЛИ порт. Можно указать отдельно имя хоста (адрес), можно указать отдельно порт, а также можно указать их вместе. Во всех вариантах rdomain может отсутствовать.

Опции командной строки (об их использовании далее) имеют приоритет над директивами конфигурационного файла. В том числе опция для установки используемого порта приводят к тому, что Port в конфигурационном файле игнорируется. Но порты указанные с ListenAddress перезаписывают порты в строке команды.

Вы можете указать конкретный IP, который будет прослушиваться в ожидании подключений. А опцией AddressFamily вы можете выбрать для прослушивания все адреса, только IPv4 или только IPv6:

AddressFamily any
  • any (по умолчанию — любые адреса),
  • inet (использовать только IPv4),
  • inet6 (использовать только IPv6),

Оглавление

Содержание «Полное руководство по SSH в Linux и Windows»

1. Что такое SSH. Утилиты SSH

2. Настройка сервера OpenSSH

2.1 Как настроить SSH сервер (sshd)

2.2 Перезапуск службы SSH

2.3 Как изменить порт, на котором работает сервер OpenSSH

2.4 Как выбрать интерфейс (IP) для прослушивания

2.5 Почему пользователь root не может подключиться по SSH с верным паролем. Как запретить или разрешить подключение root по SSH

2.6 Запрет и разрешение входа в SSH по паролю обычным пользователям

2.7 Разрешение входа без пароля

2.8 Как разрешить или запретить пользователям входить через SSH

2.9 Шаблоны в файле настроек SSH

2.10 Как разрешить подключение только с определённого IP или группы IP. Как заблокировать определённые IP для SSH

2.11 Настройка журналов SSH сервера

2.12 Запуск SSH без отсоединения от терминала

2.13 Запуск сервера SSH с другим конфигурационным файлом

2.14 Как проверить конфигурационный файл сервера SSH без запуска службы

2.15 Другие важные опции командной строки сервера SSH

2.16 Другие опции sshd

3. Как подключиться к SSH. Настройка клиента OpenSSH

4. Создание и настройка ключей OpenSSH

5. Копирование файлов с помощью scp и sftp

6. Подсказки и сложные случаи использования OpenSSH


Как проверить конфигурационный файл сервера SSH без запуска службы

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

Расширенный тестовый режим. С этой опцией sshd проверит правильность файла конфигурации, выведет действующую конфигурацию в стандартный вывод и затем завершит работу. При желании, правила соответствия могут применяться путём указания параметров соединения с использованием одной или нескольких опций -C.

Запуск SSH без отсоединения от терминала

Запуск службы sshd описан в первой части. Также демон sshd можно запустить по имени файла. Для этого нужно указать полный путь до файла sshd, чтобы его узнать:

which sshd
/usr/bin/sshd

Запущенная таким образом sshd отключиться от терминала (перейдёт в фоновое выполнение) и не будет выводить что-либо в стандартный вывод.

Можно запустить sshd как процесс без отсоединения от терминала (чтобы процесс не стал демоном), для этого используйте опцию -D — это позволяет упростить процесс мониторинга работы SSH, поскольку сообщения о событиях и проблемах службы будут выводиться в стандартный вывод. Дополнительно можно указать опцию -d для включения режима отладки:

sudo /usr/bin/sshd -D -d

Запуск сервера SSH с другим конфигурационным файлом

С помощью опции -f можно указать путь до другого конфигурационного файла (значение по умолчанию /etc/ssh/sshd_config). sshd откажется запускаться без конфигурационного файла.

Другие опции sshd

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

С другими опциями конфигурационного файла sshd (на английском языке) вы сможете ознакомиться с помощью команды:

man sshd_config

Информацию об опциях командной строки можно увидеть с помощью:

man sshd

«su» program available to non-admin users

sudo dpkg-statoverride --update --add root sudo 4750 /bin/su

Запрет и разрешение входа в SSH по паролю обычным пользователям

Чуть выше мы рассмотрели вариант, когда пользователю root запретить вход по паролю. Такую же настройку можно сделать для всех остальных пользователей, для этого используется директива PasswordAuthentication. Значением по умолчанию является yes, то есть вход по паролю разрешён. Для запрета входа по паролю всем пользователям, установите значение этой директивы на no.

Разрешение входа без пароля

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

Оцените статью
Master Hi-technology
Добавить комментарий