parece não ter qualquer esperança :
No, there isn't. And there won't be. Even if you write it yourself and send us the patch, we won't accept it.
Como posso desabilitar alertas de segurança como "A chave do host do servidor não está armazenada em cache no registro, bla-bla-bla", "a identidade do host é alterada, existe man-in-the-middle", etc
Eles são desnecessários no ambiente de hospedagem na nuvem, onde muitas novas instâncias do servidor aparecem. E também, é normal que eventualmente haja um novo servidor no mesmo IP.
No cliente linux ssh eu fiz isso com as seguintes linhas no meu .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"'Mas como fazer isso em massa?
parece não ter qualquer esperança :
No, there isn't. And there won't be. Even if you write it yourself and send us the patch, we won't accept it.
Eu uso o AutoHotkey para criar um script que é executado em segundo plano e procura por pop-ups de aviso específicos com os quais não me importo, fechando-os automaticamente.
#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
Eu encontrei uma solução para isso.
Sempre que você fizer login pela Putty em qualquer máquina pela primeira vez, receberá essa mensagem de segurança. Clique em Sim e ele armazenará em cache a chave do host do servidor no seu sistema. O alerta não será exibido se você fizer login como o mesmo usuário na próxima vez.
Então, o truque é:
Fazer check-in na pasta Appdata \ Local
Após a chave do host ser armazenada em cache, você verá os arquivos mencionados abaixo (.DAT e .RND) no seguinte local:
C:\Users\your_User\Appdata\Local
GDIPFONTCACHEV1.DAT e PUTTY.RND
Agora basta copiar e colar os dois arquivos para cada usuário com o qual você deseja efetuar login no mesmo local C: \ Users \ Another_User \ Appdata \ Local
Isso funcionou para mim.
Depois de muita pesquisa, encontrei a resposta aqui:
echo y | ssh -pw yourpassword [email protected]
link
As chaves de host aceitas para um usuário específico são armazenadas no registro. Depois que o usuário atual aceitar a (s) chave (s), eles poderão ser disponibilizados para outras pessoas exportando as entradas do registro do usuário atual, modificando o caminho para o novo usuário e, em seguida, importando-as novamente.
Usando o REGEDIT, exporte:
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys]
Abra o arquivo .reg que contém a exportação
Alterar todas as instâncias de
HKEY_CURRENT_USER
para
HKEY_USERS\S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx
em que S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx
é o SID do usuário em questão.
Execute o arquivo .reg para importar de volta para o registro desse usuário:
[HKEY_USERS\S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx\Software\SimonTatham\PuTTY\SshHostKeys]
NOTA: Os mapeamentos de nome de usuário / SID podem ser encontrados em:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList]
Não há sinalizador "voluntário" para ignorar o aviso do ssh.
Aqui está o que eu fiz para contornar isso:
$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
}
}
Baseado em uma das respostas acima, isso funcionou para mim com ver 0.70:
echo y | plink -pw password -m usuário NUL @ host
Após essa putty não mostrar um prompt: putty -ssh -pw senha user @ host
é só usar o switch "-batch", por ex. plink -batch -ssh ...