warning - Windows CHMOD 600
putty scp (11)
Para Unix y OSX
Muy simple:
chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/
Para ventanas
Si el archivo es un enlace simbólico de Windows (NTFS), lo anterior no funcionará. Debe convertirlo en un archivo normal. No estoy seguro por qué.
Si no tiene openssh o cygwin, use chocolatey para instalarlo fácilmente con chocolatey .
choco install cyg-get
Abre el Cygwin Terminal que se instaló con chocolate y se ejecuta (ten en cuenta que ssh-keygen
crea nuevas claves):
cyg-get install openssh
ssh-keygen
cd ~/.ssh && explorer.exe .
Verifique que las claves estén allí (o reemplácelas con las claves que desee), y luego en Cygwin shell:
chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/
O para el raro caso de que esté usando (y haya generado las claves) el paquete SSH de chocolatey :
chown -R $USER:users /cygdrive/c/Users/$USER/.ssh
chmod -R 600 /cygdrive/c/Users/$USER/.ssh
Estoy intentando conectarme a Amazon EC2 usando OpenSSH en Windows, pero necesito establecer los permisos de mi archivo de clave.
¿Cuál es el equivalente de Windows CHMOD 600
?
Busqué mucho en Google y solo encontré blogspam.
EDITAR: Windows 7, usando DOS.
Copie el archivo al sistema Unix a través de scp y haga chmod 600 al archivo. Luego transfiera el archivo a la máquina de Windows. Funcionó para mí
Haga clic derecho en el archivo / directorio, seleccione Propiedades y luego Seguridad. Haz clic en Avanzado, luego en Editar. Desmarque "Heredable" y elija "Eliminar" en el cuadro de diálogo. Elimine los permisos explícitos que quedan, agregue un permiso de "Acceso total" a su nombre de usuario.
Hoy, una de las formas recomendadas en Windows sería utilizar PowerShell y los Get-Acl
y Set-Acl
.
A continuación, se incluye un ejemplo para garantizar que solo el usuario actual tenga permiso para una carpeta y todos los archivos, similar a lo que se recomienda para la carpeta .ssh
en Unix / Linux / OS X:
# get current ACL of directory
$Acl = Get-Acl -Path $Directory
# remove inheritance ($true) and remove all existing rules ($false)
$Acl.SetAccessRuleProtection($true,$false)
# create new access rule for
# current user
# with FullControl permission
# enable inheritance for folders and files
# enable it for the specified folder as well
# allow these conditions
$AcessRule = [System.Security.AccessControl.FileSystemAccessRule]::new(
$env:USERNAME,
"FullControl",
([System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit),
System.Security.AccessControl.PropagationFlags]::None,
[System.Security.AccessControl.AccessControlType]::Allow)
# add access rule to empty ACL
$Acl.AddAccessRule($AcessRule)
# activate ACL on folder
Set-Acl -Path $SgwConfigDirectory -AclRule
Para más detalles ver
Me doy cuenta de que esto es algo antiguo, pero acabo de encontrar la solución para mí en Windows 7. Y parece que esta pregunta no se resolvió. Tenía todos los mismos errores, incluido Cygwin missing cygintl-2.dll
en chmod
como Cygwin missing cygintl-2.dll
en los comentarios.
Después de una extensa investigación y de no encontrar ninguna respuesta, ejecuté:
C:/Users/mztriz/.ssh>ssh -v
OpenSSH_3.8.1p1, OpenSSL 0.9.7d 17 mar 2004 uso: ssh [-1246AaffkknqsTtVvXxY] [-b bind_address] [-c cipher_spec] [-D port] [-e escape_char] [-F configfile] [-i identity_file] [ -L puerto: host: hostport] [-l nombre de usuario] [-m mac_spec] [-o opción] [-p puerto] [-R puerto: host: hostport] [usuario @] nombre de host [comando]
Como puede ver, la versión de OpenSSH que estaba ejecutando estaba bastante desactualizada. Sin embargo, no lo sabía porque una búsqueda rápida en Google de OpenSSH for Windows
devuelve esta versión anterior.
Después de investigar el control de versiones, encontré OpenSSH para Windows 6.9p1-1 en la sección de descargas de ese sitio web.
Esta versión más nueva de OpenSSH parece solucionar todos los problemas que menciona.
Modificar los permisos para que:
- El archivo de clave no hereda del contenedor
- Usted (el propietario) tiene acceso completo
- Eliminar entradas de permiso para otros usuarios (por ejemplo, SISTEMA, Administrador)
- Agregue una Entrada para todos los usuarios especiales y edite los permisos para ese usuario a Denegar para todos los permisos:
- Haga clic con el botón derecho en el archivo en el Explorador de Windows y elija Propiedades> Seguridad> Avanzado, para obtener el cuadro de diálogo Configuración de seguridad avanzada.
- Haga clic en la pestaña Permisos, luego haga clic en Cambiar permisos.
- Haga clic en Agregar, ingrese Todos en el campo de nombre del objeto, haga clic en Comprobar nombres, luego haga clic en Aceptar.
- En el cuadro de diálogo Entrada de permiso, haga clic en la casilla de verificación en la columna Denegar para Control total.
- Haga clic en Aceptar en cada diálogo para retroceder y cerrar el cuadro de diálogo de propiedades del archivo.
Ahora scp leerá los permisos 0400 y estará contento. Ish.
Prefiero Cygwin con masilla y puedes ejecutar el comando chmod en cygwin para cambiar el permiso de la clave PEM a 400, entonces ya estás listo para empezar.
myuser@myuser-HP ~
$ ssh -i /cygdrive/c/Users/myuser/Downloads/mykey.pem [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0550 for ''/cygdrive/c/Users/myuser/Downloads/mykey.pem'' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/cygdrive/c/Users/myuser/Downloads/mykey.pem": bad permissions
Permission denied (publickey).
myuser@myuser-HP ~
$ chmod
chmod: missing operand
Try ''chmod --help'' for more information.
myuser@myuser-HP ~
$ chmod 400 /cygdrive/c/Users/myuser/Downloads/mykey.pem
myuser@myuser-HP ~
$ ssh -i /cygdrive/c/Users/myuser/Downloads/meykey.pem [email protected]
__| __|_ )
_| ( / Amazon Linux AMI
___|/___|___|
https://aws.amazon.com/amazon-linux-ami/2015.09-release-notes/
[ec2-user@ip-xxx ~]$ ohyeah I am in!
Realmente no respondía la misma pregunta, pero pude conectarme a EC2 usando estas instrucciones:
Tengo el mismo problema. La solución, que funcionó fue establecer el modo de compatibilidad de ssh.exe para Windows XP SP3.
Tengo el mismo problema. La solución, que funcionó fue establecer el modo de compatibilidad de ssh.exe para Windows XP SP3.
-> Esta respuesta funciona para Windows 7