Tengo OpenSSH 7.6 instalado en Windows 7 con fines de prueba. El servidor y el cliente SSH funcionan bien hasta que intenté acceder a uno de mis cuadros de AWS EC2 desde esta ventana.
Parece que necesito cambiar el permiso en el archivo de clave privada. Esto se puede hacer fácilmente en unix / linux con el chmod
comando.
¿Qué hay de las ventanas?
private-key.ppm se copia directamente de AWS y supongo que el permiso también.
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
fuente
fuente
Respuestas:
Ubique el archivo en el Explorador de Windows, haga clic derecho sobre él y luego seleccione "Propiedades". Vaya a la pestaña "Seguridad" y haga clic en "Avanzado".
Cambie el propietario a usted, deshabilite la herencia y elimine todos los permisos. Luego otórguese "Control total" y guarde los permisos. Ahora SSH no se quejará de que el permiso de archivo ya no esté abierto.
Debería terminar luciendo así:
fuente
10.0.17134.191
cuadro de Windows 10 ( ) con Cygwin verCYGWIN_NT-10.0-WOW 2.3.1(0.291/5/3) 2015-11-14 12:42
y ssh verOpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4
, y 2) ¡Gracias! @iBug!Las claves solo deben ser accesibles para el usuario al que están destinadas y ninguna otra cuenta, servicio o grupo.
CLI:
fuente
network service
lo que Cygwin cree que el permiso es 0770 en lugar de 0700.network service
puede poseer un archivo y es un grupoAdemás de la respuesta proporcionada por ibug. Como estaba usando el sistema ubuntu dentro de Windows para ejecutar el comando ssh. Seguía sin funcionar. Así que lo hice
y luego funcionó
fuente
sudo
no debe utilizarse para abrir una sesión SSH ya que es un riesgo de seguridad. El único momento (al menos que yo sepa) de la cuenta de root se debe utilizar para abrir una sesión SSH es en sistemas de un solo usuario (es decir, normalmente se encuentra en el sistema operativo del enrutador [OpenWrt, DD-WRT, etc.] y otros sistemas integrados) ) . Las claves SSH deben ser accesibles solo para el usuario al que están dirigidas y no para otra cuenta, servicio o grupo.Tuve el mismo problema y parece estar relacionado con la versión de SSH que está ejecutando.
Si escribo
Yo obtengo...
Cuando corro
ssh -V
en ambos lugares, me sale...respectivamente
Entonces, cuando ejecuto
ssh
desde el directorio git / bin, funciona bien y no se queja de los permisos, pero al ejecutar la misma línea de comando, usando la instalación anterior de SSH, vuelve con esto.PD. los permisos en el archivo son solo acceso completo para mí y nada más.
fuente
DISM
la opción Restablecer (que se ha mejorado para utilizar el directorio WinSxS) versus volver al originalinstall.esd
) .Necesitas jsut 2 cosas:
1) Desactivar herencia
2) Convertir permisos heredados a permisos explícitos
3) Eliminar grupo de usuarios
4) Terminará sin que los usuarios puedan acceder a archivos privados, esto debería ser suficiente para agregar id_rsa.
fuente
Tuve un problema similar pero estaba en el trabajo y no tengo la capacidad de cambiar los permisos de archivo en mi computadora de trabajo. Lo que debe hacer es instalar WSL y luego copiar la clave al directorio ssh oculto en WSL:
cp <path to your key> ~/.ssh/<name of your key>
Ahora debería poder modificar los permisos normalmente.
sudo chmod 600 ~/.ssh/<your key's name>
Luego ssh usando WSL:
ssh -i ~/.ssh/<name of your key> <username>@<ip address>
fuente
use el siguiente comando en su tecla, funciona en Windows
fuente
Puede usar icacls en Windows en lugar de chmod para ajustar el permiso del archivo. Para dar al usuario actual permiso de lectura y eliminar todo lo demás,
fuente
Esta es solo una versión con guión de la respuesta de CLI de @ JW0914, por lo que debe votarlo ante todo. Además, es mi primer script de PowerShell, por lo que las sugerencias son bienvenidas.
fuente
Una sola línea en CMD podría hacer el truco (como se describe aquí: https://serverfault.com/a/883338/550334 ), es decir, agregar la clave de stdin en lugar de cambiar los permisos:
Para verificar si se ha agregado la clave:
fuente
Uso
Mingw-w64
.Información: http://mingw-w64.org/doku.php
Descargar con Git para Windows, o directamente.
Disponible aquí: https://github.com/mirror/mingw-w64
También tiene otros comandos útiles de Linux como
tar
ygzip
.fuente
Soy un usuario de Windows, utilizo el bash de Windows y seguí todos los pasos para configurar el permiso utilizando la GUI de Windows, y todavía no funciona y se queja:
Agregué
sudo
al frente del comando ssh y simplemente funciona. Espero que esto sea útil para otros.fuente
¡La respuesta de iBug funciona bien! Puedes seguir eso y deshacerte de este problema.
¡Pero hay algunas cosas que deben borrarse ya que enfrenté problemas durante la configuración de los permisos y me tomó unos minutos resolver el problema!
Después de la respuesta de iBug, eliminará todos los permisos, pero ¿cómo se configura el permiso Control total para usted? ahí es donde me quedé atrapado al principio ya que no sabía cómo hacerlo.
Después de deshabilitar la herencia, podrá eliminar todos los usuarios o grupos permitidos.
Una vez hecho esto,
Haga clic en
Add
y haga clic enSet a Principal
a continuación, introduzcaSystem
yAdministrators
yyour email addredd
en el campo en el fondo, a continuación, haga clic encheck names
.Cargará el nombre si el usuario existe. Luego, haga clic en
OK
> TipoAllow
> Permisos básicosFull Control
>Okay
Esto configurará el permiso de Control total para SYSTEM, Administradores y Su usuario.
Después de eso intente ssh usando esa clave. Debería resolverse ahora.
Tuve el mismo problema y lo resolví usando este método. Si hay algún usuario o grupo con ese nombre, lo cargará.
-Capturas de pantalla-
Entradas de permisos Seleccione un director / Seleccionar usuario o grupos
fuente