ssh в Linux

ssh в Linux

    Утилиты ssh

    sshd - программа демон, ожидает подключение от клиентов.
    sftp-server - передача файлов по протоколу sftp, работает совместно с демоном sshd.
    ssh - клиент
    ssh-keygen - создание ключей или отзыв ключей
    Посмотреть логи ssh:

    journalctl -u ssh.service #or journalctl /usr/sbin/sshd #Вот так можно посмотреть журнал подключений пользователей journalctl | grep -i 'Accepted password'

    PermitEmptyPasswords - разрешение входа без пароля, разрешает вход с пустым паролем
    Разрешение доступа для пользователей или групп
    За директивой AllowUsers может следовать несколько шаблонов имен
    Можно использовать шаблон имя пользователя@host
    Можно использовать регулярные выражения

    AllowUsers user1 user2 ... AllowUsers *@net DenyGroups admin AllowGroups * DenyUsers user1@!host1 AllowUsers *@* AllowUsers admin@192.168.1.* admin2@192.168.2.* user1 user2
    Настройка журналов

    Директива LogLevel в файле sshd_config по умолчанию имеет значение INFO, однако доступны другие уровни:

    DEBUG
    DEBUG1
    DEBUG2
    DEBUG3
    QUIET
    FATAL
    ERROR
    INFO
    VERBOSE
    Опция -o позволяет задавать параметры используемые в файле конфигурации
    Опция -e записывает журнал отладки в стандартный вывод ошибок вместо системного журнала
    Опция -h указывает файл, из которого читается ключ хоста
    Опция -T sshd проверит правильность файла конфигурации, выведет действующую конфигурацию в стандартный вывод, затем завершит работу

    Подключение

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

    ssh root@netbash.ru -p 222 ls -la

    Можно вместо ip или домена использовать короткий псевдоним, для этого просто указать его в файле /etc/hosts

    ssh user@95.168.5.82 'ls -la' > test.txt

    Но есть более лаконичное решение, для этого можно использовать ~/ssh/config

    Host nb HostName 65.155.5.133 Port 2222

    Чтобы перенаправить вывод не в локальную, а в удаленную директорию, достаточно переставить кавычку:

    ssh user@95.168.5.82 'ls -la > test.txt' Передать публичный ключ ssh удаленной машине: cat .ssh/id_rsa.pub | ssh root@95.165.5.83 -p 222 'cat >> .ssh/authorized_keys'
    Дополнительные опции

    Перенаправить вывод логов в отдельный файл:

    ssh root@95.165.4.82 -p 2222 -E /tmp/test-ssh.log

    Указать конфигурационный файл при подключении можно с помощью опции -F, тогда стандартный файл /etc/ssh/sshd_config будет игнорироваться, однако по умолчанию используется файл config определенный в директории пользователя ~/.ssh/config /etc/ssh/ssh_known_hosts - файл список открытых ключей известных хостов
    .ssh/known_hosts - содержит список ключей хостов в которые входил пользователь, но отсутствует в общесистемном списке известных хостов
    Конфигурационные данные обрабатываются в следующем приоритете:
    1 Опции командной строки
    2 Файл со специфичными для пользователей настройками ~/.ssh/config
    3 Файл с общесистемными настройками /etc/ssh/ssh_config
    Директива Host устанавливает имя хоста, к которому будут применяться настройки
    Host * - для любого хоста, Host * !test - для любого хоста, кроме
    Можно указать для каждого хоста свой порт
    Host 10.0.2.10 Port 2222

    Если говорить о командах ssh scp sftp -o в них параметры конфигурации можно заключать в кавычки через пробел или используя символ '='
    Опция -i используется для указания приватного ключа(~/.ssh/id_rsa) при подключении к удаленному серверу
    Дополнительную информацию по работе с утилитой ssh и настройке sshd_config можно узнать командой man

    man ssh man ssh_config
    Источники
    Последнее изменение: 10.10.2024 05:32


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

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ