É 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
É 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
Respostas:
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 $PROXYHOSTpossa 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 $REMOTEHOSTDeixe essa conexão para manter o túnel funcionando. Você também pode adicionar -Nao 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 $REMOTEHOSTporta 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 -tflag para alocar um pseudo terminal junto com a execução do ssh diretamente no relé.
ssh -t relay.example.com ssh internal.example.com
Você pode encaminhar conexões automaticamente usando o OpenSSH. No seu ~/.ssh/authorized_keysarquivo, você pode especificar um comando a ser executado, que pode ser um SSH para uma segunda máquina.
[ssh client] ----> [ssh relay server] ----> [ssh target server]
you modified authorized_keys target machine
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.