Как предложил Мюррей, вы можете создать другой файл (не / etc / passwd
), а затем, как описано здесь , вы можете выполнить следующие действия, чтобы создать Basic Пользователи аутентификации:
htpasswd -c /path/to/your/file username
вам будет предложено ввести пароль, который будет зашифрован и сохранен в файле, определенном выше. Обратите внимание , что если вы хотите создать другого пользователя (более одного), вам нужно не забыть опустить параметр -c
:
htpasswd /path/to/your/file username
В противном случае ваш файл будет создан заново, и вы перезапишете ранее добавленных пользователей
htpasswd --help
-c Создать новый файл.
Кроме того, учтите, что вы можете решить, какой алгоритм шифрования использовать для шифрования пароля:
-m Принудительно использовать MD5-шифрование пароля.
-d Принудительное шифрование пароля с помощью CRYPT (по умолчанию).
-p Не шифровать пароль (открытым текстом).
-s Принудительное шифрование пароля SHA.
SSH запрашивает и считывает секреты входа через отдельный файловый дескриптор; он обязательно открывает текущий TTY.
Большинство программ позаботятся о том, чтобы прочитать секреты входа в систему с TTY, чтобы они могли предотвратить отображение пароля, временно отключив «эхо» на TTY. Я ожидаю, что они обязательно напишут приглашение на тот же TTY, ради надежности.
$ SSH_AUTH_SOCK= strace -f rsync x brick:
...
[pid 26255] openat(AT_FDCWD, "/dev/tty", O_RDWR) = 4
[pid 26255] ioctl(4, TCGETS, {B38400 opost isig icanon echo...}) = 0
[pid 26255] ioctl(4, SNDCTL_TMR_CONTINUE or TCSETSF, {B38400 opost isig icanon -echo...}) = 0
...
[pid 26255] write(4, "Enter passphrase for key '/home/"..., 51Enter passphrase for key '/home/alan/.ssh/id_rsa': ) = 51
[pid 26255] read(4, "", 1) = 0
[pid 26255] write(4, "\n", 1
) = 1
[pid 26255] ioctl(4, SNDCTL_TMR_CONTINUE or TCSETSF, {B38400 opost isig icanon echo...}) = 0
...
SSH напечатал сообщение об ошибке в стандартную ошибку (открыть файл номер 2 ), а не в стандартный вывод (открыть файл номер 1 ), который rsync будет использовать для своего протокола.
[pid 26255] write(2, "alan@brick.carrier.duckdns.org: "..., 64alan@brick.carrier.duckdns.org: Permission denied (publickey).
) = 64
[pid 26255] exit_group(255) = ?