conssh.sh - Frontend para SSH via proxy HTTP
Publicado por Flávio Augusto (última atualização em 07/11/2010)
[ Hits: 5.302 ]
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
zsh: Validar IPv4 utilizando PCRE
Script de Instalação Zabbix Server - Debian
Plugin do Nagios para checar disco via SNMP
Backup com TAR em LOG usando FITA LTO/DLT com filtro de arquivos
Nenhum comentário foi encontrado.
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
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Linux Mint limitando rede a 20Mbps (6)
Jogando com Proton no LInux (0)
Ingress NGINX Controller CVSS base score of 9.8 (4)
Impossível corrigir problemas, você manteve (hold) pacotes quebrados. (2)