conssh.sh - Frontend para SSH via proxy HTTP
Publicado por Flávio Augusto (última atualização em 07/11/2010)
[ Hits: 5.220 ]
Homepage: http://twitter.com/facmachado
Frontend para SSH via Proxy HTTP. Requer o OpenSSH e o ProxyTunnel instalados na máquina. Testado inclusive com o Cygwin.
#!/bin/bash ################################################################################ ## ## *** conssh.sh *** ## ## Autor: Flavio Augusto Cardoso Machado ## ## E-mail: facmachado arroba gmail ponto com ## ## Data de criacao: 15/10/2010 ## ## Licenciado sob os termos da Control+C Control+V Public License (CCCV) ## ## "JESUS TE AMA. USE LINUX!" ## ################################################################################ ## ## Descricao: Frontend para acessar o servidor SSH via servidor Proxy. ## Requer o OpenSSH e o ProxyTunnel instalados ## ################################################################################ # Este programa THIS=$(basename $0) # Mensagens de erro DOHELP="Usage: $THIS [-k keyfile] -u user -h host:port [-p proxy:port] [-t srcport:dstport] [-c \"cmd\"]" NOPROG="$THIS: Are OpenSSH and ProxyTunnel installed?" NOHOST="$THIS: Inform ssh server address" # Verificando a existencia dos aplicativos SSH=$(which ssh) TUNNEL=$(which proxytunnel) [ ! -x "$SSH" ] && echo "$NOPROG" && exit 1 [ ! -x "$TUNNEL" ] && echo "$NOPROG" && exit 1 # Definindo o servior ssh a ser acessado (endereco[:porta]) dohost() { if [ "$(echo $1|grep :)" ]; then _host=$(echo $1|cut -d: -f1) _port=$(echo $1|cut -d: -f2) else _host=$1 _port=22 fi } # Definindo o servidor proxy, opcional (endereco:porta) doproxy() { read -p "Proxy user (hit <ENTER> for none): " p_user read -s -p "Proxy password (hit <ENTER> for none): " p_pwd if [ "$p_user" ] && [ "$p_pwd" ]; then _proxy="-o 'ProxyCommand $TUNNEL -p $1 -P $p_user:$p_pwd -d $_host:$_port'" else _proxy="-o 'ProxyCommand $TUNNEL -p $1 -d $_host:$_port'" fi } # Definindo a porta a ser tunelada por ssh, tambem opcional (origem:destino) dotunnel() { if [ "$(echo $1|grep :)" ]; then s_port=$(echo $1|cut -d: -f1) d_port=$(echo $1|cut -d: -f2) else s_port=$1 d_port=$1 fi _tun="-L $s_port:127.0.0.1:$d_port" } # Mensagem do comando sem parametros [ ! "$*" ] && echo "$DOHELP" && exit 0 # Loop para organizar os parametros do comando while (("$#")); do case $1 in -c) if [ "$2" ]; then _cmd="$2"; fi ;; -p) if [ "$2" ]; then doproxy $2; fi ;; -t) if [ "$2" ]; then dotunnel $2; fi ;; -k) if [ "$2" ]; then _key="-i $2"; fi ;; -u) if [ "$2" ]; then _user="-l $2"; fi ;; -h) [ ! "$2" ] && echo "$NOHOST" && exit 1; dohost $2 ;; esac shift done # Agora, executar o programa echo bash -c "$SSH $_key $_user -p $_port $_proxy $_tun $_host '$_cmd'" exit 0
Ataulizando o Kernel Corretamente
Baixar pdf do "slide share" sem login usando shell script
Digitalizar em batch e remover páginas em branco
facilitando e organizando a configuracao do mrtg com ipfm
Ispeed - Medidor de velocidade de download
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)