Связан ли открытый ключ ssh с пользователем?

Мой ответ касается Linux.

  1. Какое правило не позволяет синхронизировать другие вещи?

Полагаю, он получает информацию о времени только для процессов, поскольку на самом деле использует системный вызов wait4 для получения этой информации о времени . Первый параметр wait4 - это идентификатор процесса. Поэтому / usr / bin / time всегда вызывайте execve , а затем ждите4.

Кстати:

execve () выполняет программу, на которую указывает имя файла. имя_файла должно быть либо двоичным исполняемым файлом, либо сценарием, начинающимся со строки вида: #! интерпретатор [optional-arg]

Итак, / usr / bin / time требует чего-то, что может быть выполнено с помощью execve

  1. Может ли зарезервированное время слова Bash отсчитывать время всех вещей, которые могут выполняться?

Я думаю, да. Он реализован в виде двух групп вызовов:

10:06:03 getrusage(RUSAGE_SELF, {ru_utime={0, 152976}, ru_stime={0, 465929}, ru_maxrss=4052, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=6214, ru_majflt=1, ru_nswap=0, ru_inblock=368, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=6349, ru_nivcsw=12}) = 0
10:06:03 getrusage(RUSAGE_CHILDREN, {ru_utime={2, 259656}, ru_stime={1, 888712}, ru_maxrss=21176, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=64297, ru_majflt=4, ru_nswap=0, ru_inblock=272, ru_oublock=368, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=56077, ru_nivcsw=386}) = 0

запустить команду или встроенную

10:06:04 getrusage(RUSAGE_SELF, {ru_utime={0, 152976}, ru_stime={0, 476927}, ru_maxrss=4052, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=6243, ru_majflt=1, ru_nswap=0, ru_inblock=368, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=6399, ru_nivcsw=13}) = 0
10:06:04 getrusage(RUSAGE_CHILDREN, {ru_utime={2, 271654}, ru_stime={1, 903710}, ru_maxrss=21176, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=64514, ru_majflt=4, ru_nswap=0, ru_inblock=272, ru_oublock=368, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=56079, ru_nivcsw=406}) = 0

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

  1. Какие вещи может измерять внешнее время, а время зарезервированного слова - нет?

Фактически, оба системных вызова getrusage и wait4 получить из ядра использование struct rusage . Однако bash time печатает ограниченное количество полей из этой структуры. Это от человек 1 раз :

Примечание: некоторые оболочки (например, bash (1)) имеют встроенную команду времени, которая обеспечивает меньшую функциональность, чем команда, описанная здесь.

$/usr/bin/time -v  seq 10000
    Command being timed: "seq 10000"
    User time (seconds): 0.01
    System time (seconds): 0.01
    Percent of CPU this job got: 24%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.12
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 2640
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 0
    Minor (reclaiming a frame) page faults: 199
    Voluntary context switches: 8
    Involuntary context switches: 24
    Swaps: 0
    File system inputs: 0
    File system outputs: 8
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0
4
11.10.2016, 10:54
1 ответ

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

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

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

Источник:https://www.linode.com/docs/security/authentication/use-public-key-authentication-with-ssh/

1
27.01.2020, 20:49

Теги

Похожие вопросы