conssh.sh - Frontend para SSH via proxy HTTP
Publicado por Flávio Augusto (última atualização em 07/11/2010)
[ Hits: 5.056 ]
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
Manutenção básica em partições Windows
Jftp Script - Script para automação de um processo FTP
Ativar serviço que está parado
Download do Banco de dados NCBI NT (DNA)
Script para encontrar arquivos .wam, .mpeg
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
ASRock H310CM-HG4 vs Linux [RESOLVIDO] (18)
Microfone do meu headset não é recinhecido. Meu notebook é um Acer Asp... (12)