como conectar ssh 'com' porta especificada?


56

Eu sei como conectar 'a' uma certa porta quando ssh'ing.

ssh user@remotehostip -p XXX

mas existe uma maneira de estabelecer um ssh 'com' uma certa porta?

Quero dizer, existe uma maneira de especificar a porta que meu computador local usará?


Você quis dizer alterar a porta do servidor ou a porta de recebimento do cliente? Edit: Ok, eu apaguei minha sugestão. Favorito.
polímer

Eu quero especificar o cliente porto
kwagjj

3
@kwagjj você quer dizer a porta de origem? Se não, você não pode controlar a porta de origem.
Patrick

Respostas:


15

Isso não é facilmente possível. Como isso pode ser feito depende de onde a porta de origem deve ser vista: localmente também, ou é suficiente se for a porta correta da perspectiva da rede externa?

Você pode executar o cliente SSH em um contêiner LXC. Eu nunca fiz isso, portanto, não posso explicar isso em detalhes. Mas você cria uma interface de rede virtual e a anexa a esse contêiner, de modo que a sshuse porque é a única interface (externa) que ela vê.

No sistema host, deve ser possível detectar que um pacote vem dessa interface. Assim, você pode usar o NAT do Netfilter (SNAT) para reescrever o endereço de origem com algo como:

iptables -t nat -A POSTROUTING -o vnet0 -p tcp --dport 22 -j SNAT --to-source :1234

Obviamente, isso não funciona (ou se torna mais complicado) se você se conectar a portas diferentes de 22.


1
obrigada ... mas acho que essa informação está fora do meu alcance ... mas ainda assim obrigada :) Mas se eu realmente atingir um beco sem saída com o que estou fazendo ... talvez eu volte a cabeça para isso responder novamente :)
kwagjj

Sim, é realmente difícil encontrar informações sobre esse problema. Eu descobri sshfse alguém disse que funcionava com esse comando, mas não acredito nisso. Se você encontrar a resposta, informe-nos :)!
polym

@kwagjj Pode ser mais fácil (entender) instalar um Linux completo (modo texto) como uma VM real. Se você usar esta VM (ou uma certa conta nela) apenas para SSH, poderá fazer isso com o VM Netfilter.
Hauke ​​Laging

6

A sintaxe de comando que você está procurando talvez seja essa. ssh -p XXX usuário @ remotehostip Você precisa alterar a ordem das opções. Experimente agora, funciona para mim. Cumprimentos.


2

Uma solução simples para isso, se você estiver encaminhando portas através do seu roteador, defina a porta de entrada para o que quiser e a porta local para 22. Sua máquina ainda estará usando a conexão ssh 22 como o normal, mas para realmente se conectar de fora da sua rede você usaria sua porta de entrada. Se você está apenas tentando impedir que os robôs martelem sua máquina no 22, isso deve ser o suficiente.

Isso pode não ajudar no seu problema específico, mas eu imagino que muitas pessoas acabem aqui por esse motivo.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.