Ssh-copy-id'sini 22'den başka bir portta çalıştırmak mümkün müdür?


99

Standart olmayan bir bağlantı noktasında çalışan SSH'li bir sunucum var. 22 yerine, 8129'da çalışır. Giriş yapmak için kullanıyorum:

ssh -p 8129 hostname

Şimdi, şifresiz giriş için bir anahtar ayarlamam gerektiğinde, genel anahtarı kopyalayıp manuel olarak manuel olarak eklemeliyim. Komutun ssh-copy-idbu işlemi basitleştirmek için kullanılabileceğini keşfettim , ancak ssh sunucusunun portunu belirleme seçeneği bulunmuyor gibi görünüyor.

ssh-copy-idBağlantı noktası 8129'u kullanmanın bir yolu var mı , yoksa bu komutu unutmalı mıyım ve önceden olduğu gibi el ile kopyalayıp yapıştırmalı mıyım?

Yanıtlar:


112
$ ssh-copy-id "-p 8129 user@host"

Kaynak: http://it-ride.blogspot.com/2009/11/use-ssh-copy-id-on-different-port.html

NOT: Bağlantı noktasının user @ host önünde olması gerekir veya çözülmez


11
O, gerçekten aptalca sshsözdizimi vardır ssh -p 1234 user@host, ssh-copy-id "-p 1234 user@host"ve nihayet scp -P 1234 user@host. Aynı sözdizimine sahip olmak çok güzel olurdu.
— Tombart

2
@Tombart ve ardından rsync var rsync -e "ssh -p 1234" user@host. Yemin ederim, özel bir liman kullanmaya değdiğinden daha fazla güçlük çekiyor.
— garetmckinley 25:15

1
@Colt McCormack'ın cevabı bunun yeni sürümlerde geliştirildiğini ve bu tuhaf sözdiziminin artık gerekli olmadığını açıklıyor.
— meshy

1
FYI, tam komut IP'nin iki kez yazılmasını gerektirir ve şöyle bir şeye ssh-copy-id "root@192.168.0.100 -p 12345" -i ~/.ssh/id_rsa.pub 192.168.0.100
— dejenere

1
MacOS'ta (Ben Yüksek Sierra'dayım) alıntılar gerekli değildir. yani. ssh-copy-id -p 8129 user@hostEserleri.
— Arjun Mehta

46

ssh-copy-idaltta yatan sshkomuta geçebileceği herhangi bir argüman almaz , ancak içinde bir takma ad yapılandırabilirsiniz ~/.ssh/config.

Host myhost
HostName hostname
Port 8129

O zaman koş ssh-copy-id myhost.


3
Bu aynı zamanda -pbayrağa olan ihtiyacı düzenli sshgirişimlerde bulunma avantajına da sahiptir . Bu nedenle, bu sorunun sadece doğru cevabı değil, Doğru Şey, dönemidir.
— Warren Young,

Bunun için teşekkürler. Ana bilgisayarın doğal ana bilgisayar adından memnunsanız, 2. satır olan "Ana Bilgisayar Adı ana bilgisayar adı" gerekli değildir.
— Lonniebiz


11

Kaynağa hızlı bir bakış, buna ssh-copy-idizin veren bir işlevi olmadığını gösterir. Ancak, bunun yerine aşağıdaki gibi bir şey yapabilirsiniz:

ssh -p8129 user@host 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_*.pub

6

Bu çalışır ( buradan ):

ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 221 username@host'

5

Her zaman scpkopyalamak için kullandım :

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

Söylemeliyim ki, gelecekte bunları hatırlarsam muhtemelen diğer (tek satır / bağlantı) yöntemlerini kullanacağım. Ama bu sizin için başka bir seçenek.


2

CentOS7'de sadece:

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

Lütfen user @ host'i tırnak işaretleri içine sokmamaya dikkat edin, yoksa bu dağıtımda aşağıdaki hatayı alırsınız:

/usr/bin/ssh-copy-id: ERROR: Bad port ' 1234 user@host'

0

MacOS'umla bu işe yaradı.

ssh-copy-id -i ~/.ssh/id_rsa.pub -p <port> user@host

0

Bu komutu kullanıyorum:

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

Örnek:

ssh-copy-id ssh://root@1.2.3.4:23

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.