No tengo idea de qué estoy haciendo aquí así que por favor tenga esto en cuenta si usted me puede ayudar!

Estoy tratando de conectarme a mi servidor virtual a través de un proxy pero no me puedo conectar, simplemente se bloquea. Estoy asumiendo que es porque no llegar a través de nuestro proxy.

He intentado exactamente lo mismo en casa y funciona perfectamente. Estoy en OSX se ejecuta usando la Terminal para conectarse.

¿Alguien puede aconsejarme cómo puedo conseguir a través de un proxy con SSH?

  • ¿Cómo está actualmente tratando de conectarse a través de un proxy?
  • Usted debe hacer esto, ya sea en ServerFault o Superusuario. Además, obtendrá una mejor respuesta.
  • ACEPTAR la respuesta por favor
InformationsquelleAutor bencarter78 | 2013-10-03

10 Comentarios

  1. 55

    Aquí es cómo hacer Richard Christensen respuesta como un one-liner, no de edición de archivos necesarios (reemplazar capitalizado con su propia configuración, PROXYPORT es con frecuencia 80):

     ssh [email protected]_DEST -o "ProxyCommand=nc -X connect -x PROXYHOST:PROXYPORT %h %p"
    

    Puede utilizar el mismo -o ... opción para scp así, ver https://superuser.com/a/752621/39364

    Si usted recibe este en OS X:

     nc: invalid option -- X
     Try `nc --help' for more information.
    

    puede ser que usted se encuentra accidentalmente usando el homebrew versión de netcat (se puede ver haciendo un which -a nc comando–/usr/bin/nc debe aparecer en primer lugar). Si hay dos, una solución es para especificar la ruta de acceso completa a la nc quieres, como ProxyCommand=/usr/bin/nc

    Para CentOS nc tiene el mismo problema de invalid option --X. connect-proxy es una alternativa, fácil de instalar usando yum y obras –

    ssh -o ProxyCommand="connect-proxy -S PROXYHOST:PROXYPORT %h %p" [email protected]_DEST
    
    • Yo uso arch linux con gnu-netcat y la nc: invalid option -- X todavía existe. La solución para este problema es reemplazar gnu-netcat con openbsd-netcat. Consulte pagekite.net/wiki/Howto/SshOverPageKite/#wrongnetcat para obtener más detalles. Estas dos versiones, probablemente, el conflicto el uno al otro.
    • Esto funciona muy bien y debe ser aceptada respuesta.
    • Un poco fuera de tema, pero también se puede abrir un túnel a través de esta conexión (quitar todos «< » y » >’ y mantener ‘localhost’ como es): ssh -l <final_destination_user> -L <tunnel_local_port_number>:localhost:<tunnel_final_destination_port> <final_destination> -o «ProxyCommand=nc X-connect-x <proxy_host>:<proxy_port> %h %p»
    • Hay alguna forma de conectar usando GNU NetCat?
    • Nunca me hizo encontrar una manera para hacer de ti el uso de GNU, pero siéntase libre de plantear una nueva pregunta para la que supongo… 🙂
    • comando puede trabajar para usted. EDIT: se Desplaza hacia abajo y se dio cuenta que un ejemplo es en la shoaly la respuesta.
    • Me dieron: «nc: error de Proxy: «HTTP/1.0 403 Forbidden» ssh_exchange_identification: Conexión cerrada por el host remoto» ¿Qué debo hacer?
    • href=»https://askubuntu.com/questions/413710/nc-proxy-error-http-1-0-403-forbidden» title=»nc error de proxy http 1 0 403 forbidden»>askubuntu.com/questions/413710/… y serverfault.com/questions/571375/… puede ayudar
    • La respuesta en el segundo enlace es para agregar «-X connect», que ya está en el comando sugerido anteriormente (que no funciona para mí). El primer enlace, parece apuntar a una cuestión diferente y no está claro si la respuesta dada no es realmente una respuesta.
    • increíble, gracias!

  2. 25

    Si su SSH proxy de conexión se va a utilizar a menudo, usted no tiene que pasar como parámetros de cada momento. usted puede agregar las siguientes líneas a ~/.ssh/config

    Host foobar.example.com
        ProxyCommand          nc -X connect -x proxyhost:proxyport %h %p
        ServerAliveInterval   10
    

    a continuación, conecte el uso

    ssh foobar.example.com
    

    Fuente:

    http://www.perkin.org.uk/posts/ssh-via-http-proxy-in-osx.html

    • ya lo intenté pero no funcionó. la mente que yo no estaba exactamente seguro de lo que necesita para poner en pero fue algo como Anfitrión 159.23.191.23 ProxyCommand nc -x connect-x 10.3.50.01:22 %h %p ServerAliveInterval. es ese derecho?
    • Yo sólo quería añadir que esta solución se hizo el trabajo perfecto para mí. Mi actual lugar de trabajo se despliega HTTP-proxy y yo simplemente reemplazado proxyhost por la IP (añadir ningún esquema!) y el proxyport por — en este caso — 8080.
    • Esta respuesta sólo puede decirle a alguien que los comandos que puede pasar ya son (o pueden ser definidos en el archivo de configuración, pero no tienes que explícitamente escribió a un archivo. Sólo se puede pasar el argumento de la ssh el comando conectar.
  3. 20

    Yo uso -o "ProxyCommand=nc -X 5 -x proxyhost:proxyport %h %p" ssh opción de conectarse a través de proxy socks5 en OSX.

    • Su respuesta es la única que trabajó en macOS 1.12. Lo he añadido en mi configuración de ssh: ProxyCommand nc -X 5 -x proxyhost:proxyport %h %p
    • Funciona perfectamente en Ubuntu 16.04 Gracias!
    • sólo uno de los que trabajó para mí en OSX
  4. 9

    @rogerdpack
    para la plataforma windows es realmente difícil encontrar un nc.exe con -X(la variable de entorno http_proxy), sin embargo, he encontrado nc puede ser sustituido por ncat, ejemplo completo de la siguiente manera:

    Host github.com
         HostName github.com
             #ProxyCommand nc -X connect -x 127.0.0.1:1080 %h %p
             ProxyCommand ncat --proxy 127.0.0.1:1080 %h %p
         User git
         Port 22
         IdentityFile D:\Users\Administrator\.ssh\github_key
    

    y ncat con –proxy puede hacer un trabajo perfecto

  5. 2
    $ which nc
    /bin/nc
    
    $ rpm -qf /bin/nc
    nmap-ncat-7.40-7.fc26.x86_64
    
    $ ssh -o "ProxyCommand nc --proxy <addr[:port]> %h %p" [email protected]
    
    $ ssh -o "ProxyCommand nc --proxy <addr[:port]> --proxy-type <type> --proxy-auth <auth> %h %p" [email protected]
    
    • ssh -s «ProxyCommand nc –proxy <addr[:puerto]> %h %p» [email protected]
    • ¿qué acerca de la adición de un poco de información acerca de cómo funciona esto? Se mostró en la LQP
  6. 2

    Para windows, @shoaly parámetros no completamente a trabajar para mí. Yo estaba recibiendo este error:

    NCAT DEBUG: Proxy returned status code 501.
    Ncat: Proxy returned status code 501.
    ssh_exchange_identification: Connection closed by remote host
    

    Quería ssh a un REMOTESERVER y el puerto SSH había sido cerrado en mi red. He encontrado dos soluciones, pero la segunda es mejor.

    • A solucionar el problema con Ncat:

      1. He descargado Tor Browser, ejecutar y espere para conectarse.
      2. Tengo Ncat de Nmap distribución y se extrae ncat.exe en el directorio actual.
      3. SSH usando Ncat como ProxyCommand en Git Bash con la adición --proxy-type socks4 parámetro:

        ssh -o "ProxyCommand=./ncat --proxy-type socks4 --proxy 127.0.0.1:9150 %h %p" [email protected]
        

        Tenga en cuenta que esta aplicación de Ncat no admite socks5.

    • LA MEJOR SOLUCIÓN:

      1. Hacer el paso anterior 1.
      2. SSH usando conectar.c como ProxyCommand en Git Bash:

        ssh -o "ProxyCommand=connect -a none -S 127.0.0.1:9150 %h %p"
        

        Nota que se conectan.c es compatible con calcetines versión 4/4a/5.

    Para usar el proxy en git comandos a través de ssh (por ejemplo, mientras que el uso de GitHub) — suponiendo que ha instalado Git Bash en C:\Program Files\Git\ — abrir ~/.ssh/config y agregar esta entrada:

    host github.com
        user git
        hostname github.com
        port 22
        proxycommand "/c/Program Files/Git/mingw64/bin/connect.exe" -a none -S 127.0.0.1:9150 %h %p
    
  7. 0

    En mi caso ya que he tenido un salto o host Bastion host en el camino, y porque las firmas en estos bastión de los nodos había cambiado desde que fueron importados en el archivo known_hosts, sólo necesitaba para eliminar esas entradas/líneas de los siguientes archivos:

    /Users/a.abdi-kelishami/.ssh/known_hosts
    

    Desde arriba de archivo, eliminar esas líneas que se refieren a los bastion hosts.

  8. 0

    Yo estaba usando las siguientes líneas en mi .ssh/config (que puede ser sustituido por adecuados parámetros de línea de comandos) en Ubuntu

    Host remhost
      HostName      my.host.com
      User          myuser
      ProxyCommand  nc -v -X 5 -x proxy-ip:1080 %h %p 2> ssh-err.log
      ServerAliveInterval 30
      ForwardX11 yes
    

    Cuando se usa con Msys2, después de instalar gnu-netcat, archivo ssh-err.log mostraron que la opción -X no existe. nc --help confirmó que, y parecía mostrar que no hay ninguna opción alternativa para manejar los servidores proxy.

    Lo he instalado openbsd-netcat (pacman eliminado gnu-netcat después de preguntar, ya que chocaba con openbsd-netcat). En una primera visión, y la comprobación de las respectivas páginas man, openbsd-netcat y Ubuntu netcat parecen muy similares, en particular con respecto a las opciones -X y -x.
    Con esto, me he conectado sin problemas.

Dejar respuesta

Please enter your comment!
Please enter your name here