ppk conectar aws windows amazon-web-services cygwin command-line-interface credentials

windows - conectar - putty aws



Cómo conseguir que la interfaz de línea de comandos de AWS funcione en cygwin (3)

Después de un MUCHO tiempo dedicado a esto, encontré una solución que funciona.

El problema principal es que el cygwin no vino con Python instalado y no sabe dónde encontrar la versión de Windows Anaconda existente en su máquina. Esto se puede verificar ejecutando qué python desde dentro de cygwin; no pudo encontrar dónde se guarda python. Tenga en cuenta que esto puede ser confuso porque la ejecución de pip install awscli probablemente no arroja un mensaje de error. Cygwin realmente instala awscli en la instalación de Python en la Anaconda de Windows (me parece extraño ya que no ejecutamos conda install awscli).

SIN EMBARGO, en lugar de intentar apuntar a cygwin a la versión ya instalada de Anaconda python en su máquina, le ahorrará un montón de dolor de cabeza con tan solo instalar una instancia de python específica para cygwin. Los pasos para hacerlo están documentados aquí: http://wiki.fast.ai/index.php/Awscli_in_cygwin )

  1. pip uninstall awscli
  2. wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
  3. install apt-cyg /bin
  4. apt-cyg install python
  5. wget https://bootstrap.pypa.io/get-pip.py
  6. python get-pip.py
  7. pip install awscli

... Tenga en cuenta, sin embargo, que el primer comando pip uninstall awscli "colgó" para mí. Así que solo salga de él usando quit() y continúe con los otros en orden.

Puede comprobar que todo funcionó si ejecuta which python en cygwin y apunta a la versión de cygin (es decir, / usr / bin / python, a diferencia de: /users/.../Anaconda2/).

Además, si está preguntando esto junto con ver el video de configuración del curso fast.ai ( http://course.fast.ai/lessons/aws.html ), el siguiente paso es CRÍTICO para los usuarios de Windows: Cuando descarga todos los scripts de shell desde la carpeta de configuración de Github ( https://github.com/fastai/courses/tree/master/setup ), Windows agrega automáticamente los terminadores de línea CRLF. Por lo tanto, en cygwin, ejecute los siguientes comandos para eliminar estos finales de línea:

  1. apt-cyg install dos2unix
  2. dos2unix setup_p2.sh
  3. dos2unix setup_instance.sh
  4. entonces finalmente, bash setup_p2.sh

Esto debería funcionar.

Instalé la interfaz de línea de comandos de AWS en mi caja de Windows 7, y funcionó inmediatamente cuando llamé comandos desde un shell de DOS.

Pero el DOS, el peor lenguaje jamás inventado, es horrible para cualquier script serio. Por lo tanto, me gustaría utilizar el CLI de AWS desde bash a través de cygwin.

En mi caso, la AWS CLI instalada es la versión de Windows. En principio, eso no debería ser un problema porque los comandos de Windows son ejecutables desde cygwin. ( cygwin incluye las variables de entorno de Windows , como PATH, en su propio entorno).

Desafortunadamente, cuando intenté ejecutar un comando AWS CLI desde cygwin / bash, recibí un error:

$ aws s3 cp code.tgz s3://xyz/ upload failed: ./code.tgz to s3://xyz/code.tgz Unable to locate credentials

Este error es probable porque la CLI de AWS está buscando en el directorio incorrecto el archivo de credentials . En Windows, espera que el archivo esté en %UserProfile%.aws y en unix en ~/.aws .

Un truco es que en mi directorio de inicio creé un nuevo archivo llamado config_credentials que contiene una unión de los contenidos de los archivos de config y credentials de ese directorio. Luego hice una nueva env del sistema de Windows llamada AWS_CONFIG_FILE cuyo valor es la ruta a config_credentials . Éxito: los comandos de AWS CLI emitidos desde cygwin ahora funcionan.

Me pregunto si hay una mejor solución?

Tengo curiosidad por la razón por la que AWS CLI no pudo buscar en el directorio de inicio correcto los archivos de config y credentials . También me pregunto si hay una manera de corregir eso (esto eliminaría la necesidad de la var. AWS_CONFIG_FILE ).


Utilicé aws configure desde la ventana cmd de DOS para crear los archivos cfg (configuración y credenciales) y los probé con un ejemplo de aws cmd (en la ventana DOS). Luego copié la carpeta Users / .aws para detectar dónde cygwin cree que están las carpetas de inicio del usuario (en mi caso c: / cygwin64 / home /). Luego utilicé TextPad para convertir los finales de línea (usar archivo> guardar como; seleccione finales de línea unix; asegúrese de que los archivos no se renombren a x.txt). Ahora funciona.


Yo tuve el mismo problema. Lo resolví instalando una nueva copia de AWSCLI dentro de Cygwin. Primero debe instalar los paquetes Cygwin "curl" y "python", luego puede instalar AWSCLI de la siguiente manera:

$ curl -O https://bootstrap.pypa.io/get-pip.py $ python get-pip.py $ pip install awscli

Si está ejecutando bash y ejecutó previamente la línea de comandos de Windows AWS, debe borrar la ruta en caché de la siguiente manera:

$ hash -d aws

"aws --version" se verá similar a esto:

aws-cli/1.8.1 Python/2.7.10 CYGWIN_NT-10.0/2.2.1(0.289/5/3)

a diferencia de la salida de la línea de comandos de Windows, que se parece a esto:

aws-cli/1.8.1 Python/2.7.9 Windows/8

Ahora puedo hacer "aws configure" bajo Cygwin, y todo funciona como debería.