Mam w formularzu skrypt powershell
$commands = @"
echo "1 + 2" | bc
"@
$commands | ssh [email protected]
W tej chwili konfiguruję klucze ssh przed czasem, ale problem polega na tym, że wywołanie mojego skryptu jest usługą uruchamianą w przestrzeni użytkownika SYSTEM, co z kolei oznacza, że żaden z moich kluczy ssh nie został wygenerowany dla administrator
lub user1234
się przyzwyczajają. irytująco, powoduje to zawieszenie klienta ssh powershell.
Co jest najlepszym rozwiązaniem i czy ktoś ma jakiś kod, aby mnie uruchomić?
- Mógłbym zrobić trochę PowerShell
runas
foo, aby zamienić się między użytkownikami, aby dać mi rodzaj „twardego punktu” użytkownika dla ssh - Mogłem przenieść klucze ssh z ich domyślnego domu
~/.ssh
, chociaż naprawdę nie wiem, co jest bezpieczne, a czego nie ma - Mógłbym, przy nieznośnych kosztach operacyjnych, zaprzestać korzystania z usługi z użytkownikiem SYSTEM i próbować uruchomić wspomnianą usługę jako użytkownik za każdym razem, gdy wchodzę do biura.
Wielkie dzięki!
ssh
powershell
openssh
Groostav
źródło
źródło
1
Sugestia: Użyj psexec -s wygenerować lub zaimportować klucze do konta systemowego.
harrymc
1
@Seth Powershell ma wsparcie SSh w wersji 6. github.com/PowerShell/Win32-OpenSSH/releases
uSlackr
1
Czy próbowałeś użyć modułu PowerShell SSH z MS PowerShellGallery --- Find-Module -Name ' ssh '
postanote
1
@uSlackr dzięki, to ciekawe. Mimo to, jeśli spojrzysz na to, co robi OP, jasne jest, że nie używa polecenia cmdlet, a raczej przekazuje dane wejściowe do portu / OpenSSH. Moduł dla ssh nie zawiera żadnych funkcji, które faktycznie używają SSH w PowerShell, ale raczej port SSH dla Windows i moduł OpenSSHUtils. Chociaż dobrze jest wiedzieć, że nie korzysta z WSL. Posh-SSH byłby rzeczywistym modułem PowerShell, który pozwala korzystać z SSH w sposób PowerShell.
Seth
1
Wygląda na to, że może używać projektu Win32 i otworzył w tym celu problem na GitHub: github.com/PowerShell/Win32-OpenSSH/issues/1287
uSlackr