5

Как отключить предупреждения системы безопасности, такие как «Ключ хоста сервера не кэшируется в реестре, бла-бла-бла», «Идентификация хоста изменена, есть посредник» и т.д.

Они не нужны в облачной среде хостинга, где появляется много новых экземпляров сервера. А также, это вполне нормально, если в конечном итоге будет новый сервер с тем же IP-адресом.

В Linux-клиенте SSH я сделал это с помощью следующих строк в моем .bashrc:

alias ssh='ssh -o "StrictHostKeyChecking no" -o "UserKnownHostsFile=/dev/null" -o "CheckHostIP=no"'
alias scp='scp -o "StrictHostKeyChecking no" -o "UserKnownHostsFile=/dev/null" -o "CheckHostIP=no"'
Но как это сделать в замазке?

9 ответов9

3

Я использую AutoHotkey для создания скрипта, который работает в фоновом режиме и сканирует любые всплывающие окна с предупреждениями, которые меня не интересуют, закрывая их автоматически.

#Persistent
    SetTimer, ClosePopups, 100  ; Check every 1/10 of a second
return

ClosePopups:
    ; Putty popup definition
    IfWinExist, PuTTY Security Alert
    {
        WinActivate PuTTY Security Alert
        Send !y ; Press Alt+Y
    }

    ; Here's another example of a popup definition, for reference
    IfWinExist, Cisco AnyConnect Secure Mobility Client
    {
        WinGetText, output, Cisco AnyConnect Secure Mobility Client
        if output contains Connecting to this server may result in a severe security compromise
        {
            WinActivate Cisco AnyConnect Secure Mobility Client
            Send {Tab}{Space}
        }
    }

return
3

Кажется, нет никакой надежды:

Нет, нет И не будет. Даже если вы сами напишите и отправите нам патч, мы не примем его.

2

Я нашел решение для этого.

При первом входе в систему через Putty на любом компьютере вы получите это сообщение о безопасности. Нажмите Да, и он будет кешировать ключ хоста сервера в вашей системе. Предупреждение не будет отображаться, если вы в следующий раз войдете под тем же пользователем.

Итак, хитрость заключается в следующем:

Проверьте в Appdata\Local Folder

После того, как ключ хоста будет кэширован, вы увидите указанные ниже файлы (.DAT и.RND) в следующем месте:

C:\Users\ ваш_пользователь \ AppData \ Local

GDIPFONTCACHEV1.DAT и PUTTY.RND

Теперь просто скопируйте и вставьте оба файла для каждого пользователя, с которым вы хотите войти в тот же каталог C:\Users\Another_User\Appdata\Local

Это сработало для меня.

1

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

  1. Используя REGEDIT, экспортируйте:

    [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys]

  2. Откройте файл .reg, который содержит экспорт

  3. Изменить все экземпляры

    HKEY_CURRENT_USER

    в

    HKEY_USERS\S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx

где S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx - это SID данного пользователя.

  1. Запустите файл .reg для импорта обратно в реестр для этого пользователя:

    [HKEY_USERS\S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx\Software\SimonTatham\PuTTY\SshHostKeys]

ПРИМЕЧАНИЕ. Отображения имени пользователя /SID можно найти в:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList]

1

После долгих поисков нашел ответ здесь:

echo y | ssh -pw yourpassword root@yourservername.com

http://www.governmentsecurity.org/forum/index.php?showtopic=29368

0

Не существует "добровольного" флага, чтобы игнорировать предупреждение ssh.

Вот что я сделал, чтобы обойти это:

$wshell = New-Object -ComObject wscript.shell

foreach($thisHost in $hostList)
{  
    foreach($file in $list)
    {
        .... stuff
        Write-Host "Copying file: " $file.FullName
        .... stuff
        Start-Process $PuttyExe -ArgumentList ($args)
        $wshell.SendKeys("Y")
        $wshell.SendKeys("{ENTER}")
        Sleep 1 
    }
}
-1

Основываясь на одном из ответов выше, это сработало для меня с вер 0,70:

эхо у | plink -pw пароль -m NUL user @ host

После этой замазки не отображается приглашение: putty -ssh -pw пароль user @ host

-1

Вы можете попробовать следующий вариант:

настройки замазки

-1

просто используйте переключатель "-batch", например, plink -batch -ssh ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .