É possível executar o ssh-copy-id na porta diferente de 22?

94

Eu tenho um servidor com SSH em execução em uma porta não padrão. Em vez de 22, ele é executado em 8129. Para fazer o login, eu uso:

ssh -p 8129 hostname

Agora, sempre que eu precisar configurar uma chave para login sem senha, eu tenho que copiar a chave pública e adicioná-la manualmente às authorized_keys. Eu descobri que o comando ssh-copy-id poderia ser usado para simplificar esse processo, mas parece que ele não tem uma opção para especificar a porta do servidor ssh.

Existe alguma maneira de dizer ssh-copy-id para usar a porta 8129, ou eu deveria esquecer este comando e copiar / colar manualmente como antes?

    
por Milan Babuškov 19.01.2012 / 00:29

9 respostas

106
$ ssh-copy-id "-p 8129 user@host"
Fonte: link diferente-port.html ">

NOTA: A porta deve estar na frente do usuário @ host ou não será resolvida

    
por 25.02.2013 / 18:37
45

ssh-copy-id não aceita nenhum argumento que possa ser passado para o comando ssh subjacente, mas você pode configurar um alias em ~/.ssh/config .

Host myhost
HostName hostname
Port 8129

Em seguida, execute ssh-copy-id myhost .

    
por 19.01.2012 / 01:11
14

A partir do openssh-client_6.2, existe agora um sinalizador de porta dedicada para o comando que permite esta sintaxe:

ssh-copy-id -p 8129 user@example

Ele também adicionou suporte para adicionar outras opções ssh com o sinalizador -o.

Aqui está a página do manual do Ubuntu para a versão apropriada, apresentada em 13.04: link

    
por 08.09.2014 / 17:48
11

Uma rápida olhada na fonte indica que ssh-copy-id parece não ter nenhuma função que permita isso. No entanto, você pode fazer algo como o seguinte:

ssh -p8129 user@host 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_*.pub
    
por 19.01.2012 / 00:37
6

Isso funciona (de aqui ):

ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 221 username@host'
    
por 02.09.2012 / 08:25
5

Eu sempre usei scp para copiá-lo:

scp -P 8129 ~/.ssh/id_*.pub user@host:
ssh -p 8129 user@host 'cat id_*.pub >> ~/.ssh/authorized_keys'

Embora eu deva dizer, provavelmente usarei os outros métodos (de uma linha / conexão) se eu me lembrar deles no futuro. Mas esta é outra opção para você.

    
por 19.01.2012 / 01:21
2

No CentOS7 é apenas:

 ssh-copy-id "-p 1234" user@host

Por favor, tome cuidado para não colocar user @ host entre aspas ou você receberá o seguinte erro nesta distribuição:

/usr/bin/ssh-copy-id: ERROR: Bad port ' 1234 user@host'
    
por 25.02.2018 / 13:35
0

Com o meu macOS, isso funcionou.

ssh-copy-id -i ~/.ssh/id_rsa.pub -p <port> user@host
    
por 30.11.2016 / 08:16
0

Eu uso este comando:

ssh-copy-id ssh://user@ip_addr:port

Exemplo:

ssh-copy-id ssh://[email protected]:23

    
por 14.12.2018 / 21:03

Tags