Mám server s SSH spuštěný na nestandardním portu. Místo 22 běží na 8129. K přihlášení používám:
ssh -p 8129 hostname
Nyní, kdykoli potřebuji nastavit klíč pro přihlášení bez hesla, musím veřejný klíč zkopírovat a přidat jej do autorizovaných klíčů ručně. Zjistil jsem, že příkaz ssh-copy-id
lze použít ke zjednodušení tohoto procesu, ale zdá se, že nemá možnost specifikovat port serveru ssh.
Existuje nějaký způsob, jak říct ssh-copy-id
k použití portu 8129, nebo bych měl na tento příkaz prostě zapomenout a zkopírovat/vložit ručně jako předtím?
$ ssh-copy-id "-p 8129 [email protected]"
Zdroj:http://it-ride.blogspot.com/2009/11/use -ssh-copy-id-on-different-port.html
POZNÁMKA: Port musí být před uživatelem @ Host, jinak se to nevyřeší
ssh-copy-id
nepřijímá žádné argumenty, které by mohl předat podkladovému příkazu ssh
, ale můžete nakonfigurovat alias v ~/.ssh/config
.
Host myhost
HostName hostname
Port 8129
Poté spusťte ssh-copy-id myhost
.
Od openssh-client_6.2 nyní existuje příznak vyhrazeného portu pro příkaz umožňující tuto syntaxi:
ssh-copy-id -p 8129 [email protected]
Přidala také podporu pro přidání dalších voleb ssh s příznakem -o.
Zde je manuální stránka Ubuntu pro příslušnou verzi, představená v 13.04: http://manpages.ubuntu.com/manpages/saucy/man1/ssh-copy-id.1.html
Rychlý pohled na zdroj naznačuje, že ssh-copy-id
Zdá se, že nemá žádnou funkci, která by to umožňovala. Místo toho však můžete udělat něco jako následující:
ssh -p8129 [email protected] 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_*.pub
Toto funguje (od zde ):
ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 221 [email protected]'
Na kopii jsem vždy použil scp
:
scp -P 8129 ~/.ssh/id_*.pub [email protected]:
ssh -p 8129 [email protected] 'cat id_*.pub >> ~/.ssh/authorized_keys'
I když musím říct, budu pravděpodobně používat jiné metody (jeden řádek/připojení), pokud si je v budoucnu pamatuji. Ale to je další možnost pro vás.
Na CentOS7 je jen:
ssh-copy-id "-p 1234" [email protected]
Dejte pozor, abyste do uvozovek nevkládali uživatele @ Host nebo se v této distribuci zobrazí následující chyba:
/usr/bin/ssh-copy-id: ERROR: Bad port ' 1234 [email protected]'
U mého makra to fungovalo.
ssh-copy-id -i ~/.ssh/id_rsa.pub -p <port> [email protected]
Používám tento příkaz:
ssh-copy-id ssh://[email protected]_addr:port
Příklad:
ssh-copy-id ssh://[email protected]:23