По сути, парольная фраза, защищающая ключ SSH, полностью зависит -от клиента. Учтите, что даже ssh-keygen
позволяет сменить парольную фразу без подключения к какому-либо серверу (ssh-keygen -p -f id_rsa
). Конечно, для этого нужно знать старую парольную фразу, но вы можете (попытаться )угадать ее, не намекая серверу, что делаете это.
Тем не менее, при подключении к серверу клиент SSH предлагает серверу любые имеющиеся у него ключи перед запросом парольной фразы для расшифровки ключа. Вы заметите, что если вы подключаетесь к хосту, который не принимает ваш ключ, фраза-пароль никогда не запрашивается.
$ ssh -v -v somehost
...
debug1: Offering RSA public key: /...
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 407
debug2: input_userauth_pk_ok: fp blah
debug1: key_load_private_type: incorrect passphrase supplied to decrypt private key
Enter passphrase for key '/...':
Технически,вы можете модифицировать сервер для обнаружения клиента, который предлагает ключ, но не выполняет аутентификацию с его помощью. Но это не поможет, так как любой злоумышленник может просто попытаться сначала расшифровать ключи, прежде чем пытаться аутентифицироваться. Опять же, это возможно даже с обычными утилитами :это то, что вы делаете при запуске ssh-agent
.
Если вам недостаточно ключа, текущие версии OpenSSH позволяют серверу запрашивать как ключ , так и пароль. Документация дает это в качестве примера для запроса сначала ключа, затем пароля (с использованием либо «пароля», либо «клавиатурной -интерактивной» аутентификации ):
.
AuthenticationMethods publickey,password publickey,keyboard-interactive
Файловые системы Unix и файловые системы Windows различаются. Вы должны предоставить владельцу опцию uid
, поскольку клиент SMB не сможет извлечь владельца из файловой системы Windows. Поскольку владельца, представленного в программах Linux, не существует, сменить владельца невозможно. Это оставляет две возможности для системных вызовов, таких как chown
.
Значит, вы не делаете ничего плохого, программа этого не поддерживает.
Вы можете использовать опции uid
и gid
, чтобы указать пользователя и группу для всех файлов в смонтированной файловой системе. Вы также можете использовать file_mode
и dir_mode
для прав доступа к файлам и каталогам.
Редактировать
См. man mount.cifs
.
Примеры:
Это даст всем доступ для чтения/записи. Используйте с осторожностью.
mount -t cifs //W10/Users ~/public/ -o username=bobb,dir_mode=777,file_mode=666
Это смонтирует файловую систему как user
и group
mount -t cifs //W10/Users ~/public/ -o username=bobb,uid=user,gid=group