Я системный тестер, и у меня есть определенный набор тестируемых устройств, которые могут запускаться либо в предварительно выпущенной версии прошивки, либо в кандидате на выпуск. В предварительном выпуске я могу получить доступ к основной ОС Linux тестируемого устройства, войдя в систему с определенной учетной записью пользователя. Кандидат на выпуск не допускает этого.Ожидающий скрипт: нужны средства для проверки соединения SSH, не нужен пароль
Вся основа сценария, который я пишу, заключается в возможности удаленного выполнения сценария, который находится на тестируемом устройстве. Я хотел бы проверить, есть ли у меня доступ к основной ОС Linux с необходимостью пароля или нет. Если у меня есть доступ, продолжайте еще выходить из сценария.
Я пробовал много вещей, и каждый из них потерпел неудачу при тестировании против кандидата на выпуск, поскольку ожидается пароль. Вот последняя попытка:
set status [catch {exec ssh [email protected]$host ls} result]
if { [regexp "Password:" $result]} then {
# A password was asked for. Fail
puts "This is a Release Candidate Version\nAccess to the Linux OS is denied"
exit
} else {
# no password needed. Success
puts "This is a Pre-Release version"
}
Выполняется в отношении предварительной версии настоящего кода. Но когда требуется пароль, он не работает, поскольку сеанс SSH запрашивает пароль и ждет ввода.
У кого-нибудь есть обходное решение, которое вырвалось бы из сценария требуемого пароля?
Спасибо
У меня было бы очень искушение переключиться на использование ключей с помощью ssh, так как тогда вам вообще не понадобились бы пароли. Но это требует большей настройки. –