Как получить открытые ключи SSH?

Предположим, что &&— логический оператор. , а не означает «также запустить эту команду», это означает «выполнить эту команду, если другая успешно выполнена».

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

Используйте;

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

Экранирование внутренних кавычек

Кавычки внутри других кавычек должны быть экранированы, иначе вы создадите дополнительную конечную точку и начальную точку.Ваша команда:

ssh -n $username@$masterHostname "ssh -t -t $username@$line "rm -rf Input Output Partition && mkdir -p EC2_WORKSPACE/$project Input Output Partition""

Становится:

ssh -n $username@$masterHostname "ssh -t -t $username@$line \"rm -rf Input Output Partition && mkdir -p EC2_WORKSPACE/$project Input OutputPartition\""

Ваша текущая команда из-за отсутствия экранированных кавычек должна выполняться:

ssh -n $username@$masterHostname "ssh -t -t $username@$line "rm -rf Input Output Partition

если получится:

mkdir -p EC2_WORKSPACE/$project Input Output Partition"" # runs on your local machine

Вы заметите, что подсветка синтаксиса показывает здесь всю команду красным цветом, что означает, что вся команда представляет собой строку, передаваемую в ssh. Проверьте свою локальную машину; у вас могут быть каталогиInputOutputи Partition, где вы запускали это.

3
30.08.2019, 09:43
1 ответ

Вы спросили: " Можно ли отключить аутентификацию по паролю для каждой -учетной записи, если с учетной записью связан открытый ключ? "

К сожалению, sshd_configне имеет такой возможности. Может быть, вы могли бы отправить отчет об ошибке списка желаний с просьбой о функции (, но сначала проверьте, была ли «ошибка» отправлена ​​​​до ). Не ждите положительного -или быстрого -ответа.

В то же время вы можете объявить -дату отключения где-то в будущем (как минимум через месяц ), когда аутентификация по паролю будет отключена, и что пользователям нужно будет установить открытый ключ до этого..

Поместите такое же сообщение и в /etc/motd, чтобы они получали напоминания каждый раз, когда они входят в систему. Предоставьте как минимум ссылку на веб-страницу с инструкциями по )созданию пары открытого/закрытого ключа на различных распространенных платформах., и b )различные способы установки открытого ключа в ~/.ssh/authorized_ketsна вашем сервере Mac Mini.

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

-1
27.01.2020, 21:46

Теги

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