conssh.sh - Frontend para SSH via proxy HTTP
Publicado por Flávio Augusto (última atualização em 07/11/2010)
[ Hits: 5.419 ]
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
Removendo carácter especial de arquivos recursivamente
Script para criação de pacotes auto extrator.
Bloqueia MAC Adress salvos na lista
Cluster multi-master com MariaDB 10.1 + Galera
Nenhum coment�rio foi encontrado.
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Converter os repositórios Debian para o novo formato com as chaves
Instalando Spotify no Debian 13
Realizar overclock no Miyoo Mini (plus ou normal)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (6)
E aí? O Warsaw já está funcionando no Debian 13? (6)
Problema com o Centro de Aplicativos Ubuntu 25.04 (1)