je možné spustit ssh-copy-id na jiném portu než 22?
<p>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:</p><pre><code>ssh -p 8129 hostname </code></pre><p>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 <code>ssh-copy-id</code> lze použít ke zjednodušení tohoto procesu, ale zdá se, že nemá možnost specifikovat port serveru ssh.</p><p>existuje nějaký způsob, jak říct <code>ssh-copy-id</code> 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?</p>
<pre><code>$ ssh-copy-id "-p 8129 user@host" </code></pre><p><strong> <em> zdroj:</em> </strong> <a href="http://it-ride.blogspot.com/2009/11/use-ssh-copy-id-on-different-port.html">http://it-ride.blogspot.com/2009/11/use -ssh-copy-id-on-different-port.html</a> </p><p><strong> poznámka: </strong> port musí být před uživatelem @ host, jinak se to nevyřeší</p>
<pre><code>sudo apt update sudo apt install ssh sudo ufw allow 22 # if you have ufw running, but it doesn't hurt to run. </code></pre><p>to je velmi minimum. umožňuje neomezený počet neúspěšných pokusů o heslo na známém portu. přímé přihlášení root je zakázáno (po přihlášení se stále můžete <code>su</code> a <code>sudo</code>). pokud je vaše uživatelské jméno a heslo hádatelné a internet vidí server, někdo <em> se nakonec </em> vnikne.</p><p>nemohu to dostatečně zdůraznit: <strong> <em> je třeba zatvrdit výchozí nastavení. </em> </strong> pro pravděpodobnost, že budou napadeni, ale <a href="https://thepcspy.com/read/making-ssh-secure/">prošel jsem několika návrhy na svém blog</a> . alespoň bych navrhl:</p><ul> <li>přihlášení pomocí klíčů. zakázat přihlášení heslem.</li> <li>přesuňte jej z portu 22. použijte něco šíleného v rozsahu 20000-60000.</li> <li>použijte <code>fail2ban</code> zakazovat lidem, kteří to najdou, a pokusit se to přenést.</li> </ul><p>zabere vám to méně než 10 minut a oni vás vezmou z 1/10000 šance, že se dostanou do pravděpodobnosti tak malé, že na světě není dost papíru, aby mohl napsat její zlomek. vše za předpokladu, že jste opatrní s vaším klíčem, má vlastní přístupové fráze a vy nebudete trubat vaše pověření po celé síti.</p><p>pokud jde o přístup k tomuto serveru ssh z internetu, můžete čelit překážkám v místní síti. pokud je počítač za routerem nat (např. většina domácích sítí) bez přímého příchozího přístupu z internetu, možná budete muset podívat na <a href="https://portforward.com/">přesměrování portů</a> . samozřejmě, pokud nepotřebujete přístup mimo síť, přeskočení tohoto kroku zajistí zabezpečení sítě.</p> Ano, budete muset převést klíče. Mac a Linux fungují stejně, ukládání klíče `~/.gnupg`. Nejbezpečnější způsob, jak přenést soubory je použití `scp`(část SSH):



```
scp -rp ~/.gnupg othermachine:

```

Nicméně, budete muset mít `ssh`práci jako první.


Přenos je, řekněme, USB flash disk není tak skvělý nápad, protože váš soukromý klíč bude zanechal na této jednotce i poté, co jste odstranili soubor. I když je chráněna přístupovým heslem, pokud se někdo dostal do rukou kopie souboru klíčů mohli připojit dlouhotrvající útok hrubou silou na něj na svém lesiure.


Nevím o umístění adresáře systému Windows. Dokumentace gpg řekne, a obsah pak bude téměř jistě být stejné.


Kopírování celé klíčenku je rychlá a snadná, ale někdy chcete být schopen se pohybovat jednotlivé klíče mezi stroji bez přepisování celý klíčenku a ztrátě klíče, které již existují. Kopírování jednotlivých kláves volitelně může být provedeno s `gpg --export-secret-key`a `gpg --import`. Pokud máte SSH přístup k cílovému počítači, můžete to udělat s trubkou a nepotřebují k ukládání průběžném klíč kdekoliv:


Pokud jste na počítači, který již má klíč:



```
gpg --export-secret-key SOMEKEYID | ssh othermachine gpg --import

```

Pokud jste na počítači, který potřebuje klíč:



```
ssh othermachine gpg --export-secret-key SOMEKEYID | gpg --import

```

Pokud `gpg`není v jednom z výchozích míst na vzdáleném počítači (např je v `/opt/local/bin`počítači Mac), budete muset dát svou plnou cestu k ssh, nebo symbolický odkaz do jednoho ze standardních místech, jako jsou `/usr/local/bin`.


Všimněte si, že data, která je přenesena je stále chráněn přístupové heslo a klíč bude mít stejné přístupové heslo do místa určení, jak tomu bylo u zdroje. Chcete-li mít různé hesel v každém místě, budete muset změnit přístupové heslo na místo určení, nebo ji změnit dočasně u zdroje před exportem. Potřeboval jsem sdílet tajný klíč s kolegou, s cílem dát mu možnost aktualizovat si Debian balíček repo oba řídit, ale nechtěl jsem se podělil o své přístupové heslo s ním. Tak jsem změnil přístupové heslo na něco dočasného, ​​poslal mu exportovaný klíč (podle gpg šifrované e-mailu!), Řekl mu dočasné heslo ústně, a požádal ho, aby nastavit nové přístupové heslo ihned po importu klíč. Pak jsem změnil přístupové heslo na mém kopie klíče zpět na to, co to bylo původně. Častou chybou je klonování pomocí výchozího připojení (HTTPS) namísto SSH. Tuto chybu můžete napravit tak, že přejdete do svého úložiště, kliknete na tlačítko "Klonovat nebo stáhnout", pak kliknete na tlačítko "Použít SSH" nad polem URL a aktualizujete adresu URL svého původního vzdáleného serveru takto:



```
git remote set-url origin [[email protected]](/cdn-cgi/l/email-protection):username/repo.git
```

Tento postup je zdokumentován na GitHubu: [Přepnutí vzdálených adres URL z HTTPS na SSH](https://help.github.com/articles/changing-a-remote-s-url/#switching-remote-urls-from-https-to-ssh). <p>stačí použít <a href="https://linux.die.net/man/1/chsh"><code>chsh</code></a> :</p><pre><code>chsh -s $(which zsh) </code></pre><p><strong> bez </strong> <code>sudo</code> by mělo fungovat. pokud použijete <code>sudo</code>, nezmění shell nikoliv pro vašeho pracovního uživatele, ale pro <em> root</em></p><p>nakonec <strong> se odhlaste z počítače a přihlaste se zpět </strong>.</p><p>odstraňování problémů:</p><ul> <li>máte nainstalován zsh (ii)? <code>dpkg -l zsh</code></li> <li>je vaše shell nastavena na zsh? poslední pole <a href="https://linux.die.net/man/5/passwd"><code>grep $user /etc/passwd</code></a> </li> <li>je zsh <a href="https://linux.die.net/man/5/shells">platné přihlašovací prostředí</a> ? <code>grep zsh /etc/shells</code></li> </ul> <ol> <li>otevřete terminál (<kbd>ctrl</kbd>+<kbd>alt</kbd>+<kbd>t</kbd>). nyní jste doma.</li> <li><code>sudo chown -r $user:$user pictures</code> a zadejte své běžné uživatelské heslo.</li> </ol> Jestli ti jde o pokrytí wifi, přidej na vhodné místo AP, jestli máš málo portů tak switch. Máš nastavenou domácí/pracovní síť neboveřejnou? V pracovní/domácí je ten port otevřený, ve veřejné zavřený. Když nastavíš veřejnou (zavřeš ten port), tak nebudeš moci kopírovat data z počítače na počítač.Nebezpečné je to v tom ohledu, že když se ti dostane ramsonware na jeden počítač, zašifruje ti rovnou i sdílené složky na druhém počítači, pokud tam máš povolený přístup. Jestli jsem to dobre pochopil, tak: nastav na TCP/IP WiFiny adresu z rozsahu 192.168.O.X a na stejny rozsah nastav i DHCP. PC nepripojuj do WAN, ale do jednoho z LAN portu. V minulosti jsem se s tim setkal, myslim ze mi pomohlo nastavit sit pomoci pruvodce (ve win XP) a potom si prenastavit ip adresy rucne. Mam dojem, ze v systemu musi byt povoleny uzivatel guest (pro lokalni prihlaseni lze zakazat), jinak se pta na heslo. Prave pruvodce by tyhle blbosti mel nastavit... nevim jak vypadaji ve windows takovi ti pruvodci next-next-finish, co se tvari ze umi vsechno a pritom nic ... , nepouzivam je, nicmene obecne staci proste otevrit nastaveni sitoveho adapteru, pridat TCP/IP protokol, dale protokol SMB pro sdileni prostredku v sitich windows a nakonec nastavit ve vlastnostech TCP/ip nejake rozumne adresy napriklad 192.169.0.X a masku na vsech pocitacich napriklad 255.255.255.0 ... to je cele.