Eu tenho um servidor com SSH em execução em uma porta não padrão. Em vez de 22, é executado no 8129. Para fazer login, eu uso:
ssh -p 8129 hostname
Agora, sempre que eu precisar configurar uma chave para o login sem senha, eu tenho que copiar a chave pública e adicioná-la manualmente a allowed_keys. 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 devo esquecer este comando e copiar / colar manualmente como antes?
ssh
tem uma sintaxessh -p 1234 user@host
,ssh-copy-id "-p 1234 user@host"
e, finalmentescp -P 1234 user@host
. Seria tão bom ter a mesma sintaxe.rsync -e "ssh -p 1234" user@host
. Juro que é mais complicado do que vale a pena usar uma porta personalizada.ssh-copy-id "[email protected] -p 12345" -i ~/.ssh/id_rsa.pub 192.168.0.100
ssh-copy-id -p 8129 user@host
trabalho.ssh-copy-id
não aceita nenhum argumento que possa ser transmitido aossh
comando subjacente , mas você pode configurar um alias em~/.ssh/config
.Então corra
ssh-copy-id myhost
.fonte
-p
sinalizador emssh
tentativas regulares . Portanto, não é apenas a resposta certa para esta pergunta, é a coisa certa, ponto final.A partir do openssh-client_6.2, agora existe um sinalizador de porta dedicado para o comando, permitindo esta sintaxe:
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: http://manpages.ubuntu.com/manpages/saucy/man1/ssh-copy-id.1.html
fonte
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:fonte
Isso funciona ( daqui ):
fonte
Eu sempre costumava
scp
copiá-lo:Embora eu deva dizer, provavelmente usarei os outros métodos (uma linha / conexão) se os lembrar no futuro. Mas essa é outra opção para você.
fonte
No CentOS7 é apenas:
Tome cuidado para não colocar user @ host entre aspas ou você receberá o seguinte erro nesta distribuição:
fonte
Com o meu macOS, isso funcionou.
fonte
Eu uso este comando:
ssh-copy-id ssh://user@ip_addr:port
Exemplo:
ssh-copy-id ssh://[email protected]:23
fonte