Mam OpenSSH 7.6 zainstalowany w systemie Windows 7 do celów testowych. Klient i serwer SSH działają dobrze, dopóki nie spróbowałem uzyskać dostępu do jednego z moich urządzeń AWS EC2 z tego okna.
Wygląda na to, że muszę zmienić uprawnienia do pliku klucza prywatnego. Można to łatwo zrobić na Unix / Linux za pomocą chmod
polecenia.
Co z oknami?
private-key.ppm jest kopiowany bezpośrednio z AWS i myślę, że również pozwolenie.
C:\>ssh -V
OpenSSH_7.6p1, LibreSSL 2.5.3
C:\>ver
Microsoft Windows [Version 6.1.7601]
C:\>
C:\>ssh [email protected] -i private-key.ppk
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'private-key.ppk' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "private-key.ppk": bad permissions
[email protected]: Permission denied (publickey).
C:\>
C:\>
C:\>ssh [email protected] -i private-key.ppm
Warning: Identity file private-key.ppm not accessible: No such file or directory.
[email protected]: Permission denied (publickey).
C:\>
windows-7
ssh
permissions
Sabrina
źródło
źródło
Odpowiedzi:
Zlokalizuj plik w Eksploratorze Windows, kliknij go prawym przyciskiem myszy, a następnie wybierz „Właściwości”. Przejdź do zakładki „Bezpieczeństwo” i kliknij „Zaawansowane”.
Zmień właściciela na siebie, wyłącz dziedziczenie i usuń wszystkie uprawnienia. Następnie daj sobie „pełną kontrolę” i zapisz uprawnienia. Teraz SSH nie będzie już narzekać na zbyt otwarte uprawnienia do plików.
Powinno to wyglądać następująco:
źródło
10.0.17134.191
) w wersji Cygwin verCYGWIN_NT-10.0-WOW 2.3.1(0.291/5/3) 2015-11-14 12:42
i ssh verOpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4
oraz 2) Dzięki! @iBug!Klucze muszą być dostępne tylko dla użytkownika, dla którego są przeznaczone, a nie dla żadnego innego konta, usługi lub grupy.
CLI:
źródło
network service
więc Cygwin uważa, że pozwolenie to 0770 zamiast 0700.network service
może posiadać plik i jest to grupaOprócz odpowiedzi udzielonej przez ibug. Ponieważ używałem systemu Ubuntu w systemie Windows do uruchomienia polecenia ssh. To wciąż nie działało. Więc zrobiłem
i wtedy zadziałało
źródło
sudo
nie powinien być wykorzystywany do otwierania sesji SSH, ponieważ stanowi to zagrożenie bezpieczeństwa. Jedynym czasem (przynajmniej, o którym wiem), że konto roota powinno zostać wykorzystane do otwarcia sesji SSH, jest w systemach dla jednego użytkownika (tj. Zwykle znajduje się w systemie operacyjnym routera [OpenWrt, DD-WRT itp.] I innych systemach wbudowanych ) . Klucze SSH muszą być dostępne tylko dla użytkownika, dla którego są, a nie dla żadnego innego konta, usługi ani grupy.Miałem ten sam problem i wydaje się, że jest on związany z wersją SSH, którą prowadzisz.
Jeśli piszę
Dostaję...
Kiedy biegam
ssh -V
w obu lokalizacjach, dostaję...odpowiednio
Kiedy więc uruchamiam
ssh
z katalogu git / bin, działa dobrze i nie narzeka na uprawnienia, ale uruchamia ten sam wiersz poleceń, używając poprzedniej instalacji SSH, wraca z tym.ps. uprawnienia do pliku mają dla mnie pełny dostęp i nic więcej.
źródło
DISM
lub za pomocą opcji Reset (która została ulepszona w celu wykorzystania katalogu WinSxS w porównaniu do powrotu do oryginałuinstall.esd
) .Potrzebujesz jsut 2 rzeczy:
1) Wyłącz dziedziczenie
2) Konwertuj odziedziczone uprawnienia na uprawnienia jawne
3) Usuń grupę użytkowników
4) Skończysz, że użytkownicy nie będą mieli dostępu do prywatnych plików, powinno to wystarczyć, aby dodać id_rsa.
źródło
Miałem podobny problem, ale byłem w pracy i nie mam możliwości zmiany uprawnień do plików na moim komputerze roboczym. Co musisz zrobić, to zainstalować WSL, a następnie skopiować klucz do ukrytego katalogu ssh w WSL:
cp <path to your key> ~/.ssh/<name of your key>
Teraz powinieneś być w stanie normalnie modyfikować uprawnienia.
sudo chmod 600 ~/.ssh/<your key's name>
Następnie ssh przy użyciu WSL:
ssh -i ~/.ssh/<name of your key> <username>@<ip address>
źródło
użyj poniżej polecenia na swoim klawiszu, to działa w systemie Windows
źródło
Możesz użyć icacls w Windows zamiast chmod, aby dostosować uprawnienia do plików. Aby dać bieżącemu użytkownikowi uprawnienia do odczytu i usunąć wszystko inne,
źródło
To jest tylko skryptowa wersja odpowiedzi CLI @ JW0914, więc proszę go głosować przede wszystkim. Jest to także mój pierwszy skrypt PowerShell, więc sugestie są mile widziane.
źródło
Zastosowanie
Mingw-w64
.Informacje: http://mingw-w64.org/doku.php
Pobierz za pomocą Git na Windows lub bezpośrednio.
Dostępne tutaj: https://github.com/mirror/mingw-w64
Posiada również inne przydatne polecenia systemu Linux, takie jak
tar
igzip
.źródło
Odpowiedź od iBug działa dobrze! Możesz to zrobić i pozbyć się tego problemu.
Ale jest kilka rzeczy, które należy usunąć, ponieważ napotkałem problemy podczas konfigurowania uprawnień i zajęło mi to kilka minut, aby znaleźć problem!
Po odpowiedzi iBuga usuniesz wszystkie uprawnienia, ale jak sam sobie ustawiasz uprawnienia Pełna kontrola? właśnie tam utknąłem, ponieważ nie wiedziałem, jak to zrobić.
Po wyłączeniu dziedziczenia będziesz mógł usunąć wszystkich dozwolonych użytkowników lub grupy.
Gdy to zrobisz,
Kliknij
Add
następnie kliknijSet a Principal
następnie wprowadzićSystem
iAdministrators
iyour email addredd
w polu na dole a następnie kliknijcheck names
.Załaduje nazwę, jeśli użytkownik istnieje. Następnie kliknij
OK
> TypAllow
> Podstawowe uprawnieniaFull Control
>Okay
Spowoduje to skonfigurowanie uprawnienia Pełna kontrola dla SYSTEMU, administratorów i Twojego użytkownika.
Następnie spróbuj ssh używając tego klucza. To powinno być teraz rozwiązane.
Miałem ten sam problem i rozwiązałem go za pomocą tej metody. Jeśli istnieje jakikolwiek użytkownik lub grupa o takiej nazwie, załaduje to.
-Zrzuty ekranu-
Wpisy uprawnień Wybierz głównego / Wybierz użytkownika lub grupy
źródło