conssh.sh - Frontend para SSH via proxy HTTP
Publicado por Flávio Augusto (última atualização em 07/11/2010)
[ Hits: 5.306 ]
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
Tradução de endereços de uma rede interna
Visual para tcpdump com dialog
Mudar senha de usuário automaticamente
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
compilação samba 4.22 rock linux 9.5 (1)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (2)
Posso instalar usar o grub sem ter linux instalado, para iniciar o win... (1)
Ocomon 6.0.1 - Problemas ao editar configurações estendidas (4)