É possível usar o OpenSSH para retransmitir para outros dispositivos habilitados para SSH, como switches de roteadores etc. Se isso é algo que pode ser feito sem a criação de um aplicativo sob medida no Linux para fazer isso?
obrigado
Certo; basta usar o encaminhamento / tunelamento de porta SSH. Inicie uma conexão ssh com a máquina "proxy" usando o seguinte comando:
ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
$PROXYHOST
: a máquina à qual você tem acesso SSH$REMOTEHOST
: a máquina à qual $ PROXYHOST pode se conectar, mas você não pode. Use um nome de host ou IP que $PROXYHOST
possa ser usado para se referir à máquina$SSHPORT
: a porta que o sshd está escutando no host remoto; provavelmente 22$LOCALPORT
: a porta de saída local SSH está abrindo em sua máquina local que encaminha para a porta 22 em $REMOTEHOST
Deixe essa conexão para manter o túnel funcionando. Você também pode adicionar -N
ao comando para que esta conexão não abra um shell remoto e não o feche acidentalmente mais tarde.
Depois que o túnel for estabelecido, faça o seguinte:
ssh -p $LOCALPORT localhost
Isso tenta uma conexão SSH com a máquina local na porta que é encaminhada para a $REMOTEHOST
porta SSH.
Se você estiver disposto a atualizar a configuração em seu cliente, poderá configurá-lo para usar sua caixa de gateway como proxy . Sua caixa de retransmissão precisará do netcat instalado e, para obter os melhores resultados, você precisará ter uma configuração de autenticação baseada em chave.
Aqui está o que eu uso no meu .ssh / config para conectar através de outro host.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"
Com o exposto, você pode simplesmente executar o comando ssh internal-ssh-host-proxy a partir da sua máquina cliente.
Se o host SSH proxy tiver o cliente OpenSSH 5.4 ou superior, você não precisará do netcat e poderá usar o modo netcat incorporado.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22
Das respostas apresentadas, o Zordache's é a melhor solução geral. No entanto, para a posteridade, se você simplesmente deseja conectar-se ad-hoc sem editar sua configuração, use a
-t
flag para alocar um pseudo terminal junto com a execução do ssh diretamente no relé.fonte
Você pode encaminhar conexões automaticamente usando o OpenSSH. No seu
~/.ssh/authorized_keys
arquivo, você pode especificar um comando a ser executado, que pode ser um SSH para uma segunda máquina.O que você verá são duas solicitações
Password:
: uma para o servidor de retransmissão e outra para o servidor de destino. Você sempre pode remover esse comportamento usando certificados.fonte