Prihlasovani na server v interntu BEZ pomoci hesel ale s POMOCI vygenerovaneho RSA klice

DŮLEŽITÉ!
Only the public key is copied to the server. The private key should NEVER!!! be copied to another machine.

Key Pair - Public and Private

In the SSH public key authentication use case, it is rather typical that the users create (i.e. provision) the key pair for themselves.
SSH implementations include easily usable utilities for this (for more information see ssh-keygen and ssh-copy-id).

Each SSH key pair includes two keys:
1. A public key that is copied to the SSH server(s). Anyone with a copy of the public key can encrypt data which can then only be read by the person who holds the corresponding private key.
Once an SSH server receives a public key from a user and considers the key trustworthy, the server marks the key as authorized in its authorized_keys file.
Such keys are called authorized keys.

2. A private key that remains (only) with the user. The possession of this key is proof of the user's identity. Only a user in possession of a private key that corresponds
to the public key at the server will be able to authenticate successfully. The private keys need to be stored and handled carefully, and no copies of the private key should be
distributed. The private keys used for user authentication are called identity keys.


The following simple steps are required to set up public key authentication (for SSH):
1) Key pair is created (typically by the user). This is typically done with ssh-keygen.
2) Private key stays with the user (and only there), while the public key is sent to the server. Typically with the ssh-copy-id utility.
3) Server stores the public key (and "marks" it as authorized).
4) Server will now allow access to anyone who can prove they have the corresponding private key.


!!!IMPORTANT!!!

It is extremely important that the privacy of the private key is guarded carefully. For most user-driven use cases this is accomplished by encrypting the private key with a passphrase.
When a private key is needed the user is asked to supply the passphrase so that the private key can be decrypted. The handling of passphrases can be automated with an SSH agent.
In most automated use cases (scripts, applications, etc) the private keys are not protected and careful planning and key management practises need to be excercised to remain secure and compliant with regulatory mandates.


Public key algorithm

A) rsa

an old algorithm based on the difficulty of factoring large numbers. A key size of at least 2048 bits is recommended for RSA; 4096 bits is better. RSA is getting old and significant advances are being made in factoring. Choosing a different algorithm may be advisable. It is quite possible the RSA algorithm will become practically breakable in the foreseeable future. All SSH clients support this algorithm.

B) dsa

 an old US government Digital Signature Algorithm. It is based on the difficulty of computing discrete logarithms. A key size of 1024 would normally be used with it. DSA in its original form is no longer recommended.

C) ecdsa

a new Digital Signature Algorithm standarized by the US government, using elliptic curves. This is probably a good algorithm for current applications. Only three key sizes are supported: 256, 384, and 521 (sic!) bits. We would recommend always using it with 521 bits, since the keys are still small and probably more secure than the smaller keys (even though they should be safe as well). Most SSH clients now support this algorithm.

D) ed25519

this is a new algorithm added in OpenSSH. Support for it in clients is not yet universal. Thus its use in general purpose applications may not yet be advisable.


The algorithm is selected using the -t option and key size using the -b option. The following commands illustrate:

ssh-keygen -t rsa -b 4096
ssh-keygen -t dsa
ssh-keygen -t ecdsa -b 521
ssh-keygen -t ed25519


Summary of commonly used options to the keygen tool

ssh-keygen -b <===> “Bits” This option specifies the number of bits in the key. The regulations that govern the use case for SSH may require a specific key length to be used. In general, 2048 bits is considered to be sufficient for RSA keys.
ssh-keygen -e <===> “Export” This option allows reformatting of existing keys between the OpenSSH key file format and the format documented in RFC 4716, “SSH Public Key File Format”.
ssh-keygen -p <===> “Change the passphrase” This option allows changing the passphrase of a private key file with [-P old_passphrase] and [-N new_passphrase], [-f keyfile].
ssh-keygen -t <===> “Type” This option specifies the type of key to be created. Commonly used values are: - rsa for RSA keys - dsa for DSA keys - ecdsa for elliptic curve DSA keys
ssh-keygen -i <===> "Input" When ssh-keygen is required to access an existing key, this option designates the file.
ssh-keygen -f <===> "File" Specifies name of the file in which to store the created key.
ssh-keygen -N <===> "New" Provides a new passphrase for the key.
ssh-keygen -P <===> "Passphrase" Provides the (old) passphrase when reading a key.
ssh-keygen -c <===> "Comment" Changes the comment for a keyfile.
ssh-keygen -p <===> Change the passphrase of a private key file.
ssh-keygen -q <===> Silence ssh-keygen.
ssh-keygen -v <===> Verbose mode.
ssh-keygen -l <===> "Fingerprint" Print the fingerprint of the specified public key.
ssh-keygen -B <===> "Bubble babble" Shows a "bubble babble" (Tectia format) fingerprint of a keyfile.
ssh-keygen -F <===> Search for a specified hostname in a known_hosts file.
ssh-keygen -R <===> Remove all keys belonging to a hostname from a known_hosts file.
ssh-keygen -y <===> Read a private OpenSSH format file and print an OpenSSH public key to stdout.

This only listed the most commonly used options. For full usage, including the more exotic and special-purpose options, use the man ssh-keygen command.


Sample below presents ssh-copy-id command line syntax

ssh-copy-id -f <===> Don't check if the key is already configured as an authorized key on the server. Just add it. This can result in multiple copies of the key in authorized_keys files.
ssh-copy-id -i <===> Specifies the identity file that is to be copied (default is ~/.ssh/id_rsa). If this option is not provided, this adds all keys listed by ssh-add -L. Note: it can be multiple keys and adding extra authorized keys can easily happen accidentally! If ssh-add -L returns no keys, then the most recently modified key matching ~/.ssh/id*.pub, excluding those matching ~/.ssh/*-cert.pub, will be used.
ssh-copy-id -n <===> Just print the key(s) that would be installed, without actually installing them.
ssh-copy-id -o ssh_option <===> Pass -o ssh_option to the SSH client when making the connection. This can be used for overriding configuration settings for the client. See ssh command line options and the possible configuration options in ssh_config.
ssh-copy-id -p port <===> Connect to the specifed SSH port on the server, instead of the default port 22.
ssh-copy-id -h or -? <===> Print usage summary.

 


Permissions

Correct file permissions on ~/.ssh folder and its content
As a rule of thumb, you can set the following permissions on the ssh directory and its files (private keys, public keys, known_hosts, ssh config file etc)

Element Permission
.ssh directory 700 (drwx------)
public keys 644 (-rw-r--r--)
private keys 600 (-rw-------)
authorized_keys 600 (-rw-------)
known_hosts 600 (-rw-------)
config 600 (-rw-------)


POSTUP 1

## AUTOMATICKY !! SUPER FUNGUJE !!

IP SERVERU 192.168.0.101

###neni potreba?#1) na serveru musi bezet openssh-server
####sudo apt-get install openssh-server

2) na lokalu si vygenerujeme RSA/DSA klice - jeden je privatni (NECHAT NA LOKALU) a druhej je verejnej/public (muzeme posilat komu chceme)
ssh-keygen -t rsa -b 4096

3) zepta se to KAM chci ulozit.. dam ENTER a necham standard tj. do skryte slozky ~/.ssh

4) zepta se to na passphrase, muzu take odentrovat - v pripade ze chci zaheslovat, tak zaheslovanim vlastne chranim privatni klic, kdyby se nekdo dostal k mymu pc

5) v nove vytvorene slozce ~/.ssh se vytvorily dva soubory: id_rsa (privatni klic NIKDY NIKOMU NEDAVAT!!) a id_rsa.pub (verejnej klic ten se může sdílet bez obav z důsledků.)

##tento krok neni potreba## 6) overim?? pravost serveru fingerprint?? takze vlezu na lokalu do slozky .ssh a spustim prikaz nize - tim by se na lokalu mel vytvorit soubor ~/.ssh/known_hosts
ssh-keyscan 192.168.0.101 > known_hosts

7) na lokalu ve slozce .ssh spustim SSH-COPY-ID - to by melo na serveru vytvorit slozku .ssh (ktera tam doted nebyla) a do ni vytvorit soubor authorized_keys
!! pozor pokud mam prihlasovani na ssh server na jinem portu (treba 12345) tak zadam: ssh-copy-id -p 12345 Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript. !!
ssh-copy-id Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

8) zadam heslo na server a melo by to vypsat Number of key(s) added

9) na serveru by se mel do souboru authorized_keys pridat na konec novy radek z id_rsa.pub lokalu

10) zkusime se nalogovat do SSH serveru BEZ napsani hesla
!! pozor pokud mam prihlasovani na ssh server na jinem portu (treba 12345) tak zadam: ssh -p 12345 Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript. !!
ssh Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

11) hotovo


POSTUP 2
## MANUALNI

1) prihlasime se na SSH server
ssh Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

2) na lokalu si vygenerujeme RSA/DSA klice - jeden je privatni (NECHAT NA LOKALU) a druhej je verejnej/public (POSLAT NA SSH SERVER kam se chceme pripojovat)
ssh-keygen -t rsa -b 4096

3) zepta se to KAM chci ulozit.. necham standard tj. do skryte slozky ~/.ssh

4) zepta se to na passphrase, muzu take odentrovat - v pripade ze chci zaheslovat, tak zaheslovanim vlastne chrinim privatni klic, kdyby se nekdo dostal k mymu pc

5) ve slozce ~/.ssh se vytvorily dva soubory: id_rsa (privatni klic) a id_rsa.pub (verejnej klic)

6) na serveru 192.168.0.100 vytvorim v domacim adreasy slozku .ssh
mkdir ~/.ssh

7) z lokalu zkopirujem na ssh server verejny klic(zaroven prejmenujeme)
scp ~/.ssh/id_rsa.pub Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.:/home/jmeno-uzivatele-na-serveru/.ssh/nahrany_rsa_klic.pub

8) na serveru zkontrolujem, ze se klic nahral
ls ~/.ssh/

9) presunuty verejny klic (nahrany_rsa_klic.pub) PRIDAME na konec souboru ve slozce ~/.ssh (authorized_keys)
cat ~/.ssh/nahrany_rsa_klic.pub >> ~/.ssh/authorized_keys

10) overime si, ze se klic pridal do souboru
cat ~/.ssh/authorized_keys

11) na ssh serveru nastavime prava 700 u slozky .ssh
chmod 700 ~/.ssh/

12) dale na ssh serveru nastavime prava 600 na veskere soubory v te slozce .ssh
chmod 600 ~/.ssh/*

13) pro zvyseni bezpecnosti jeste muzem ZAKAZAT logovani heslem (tj. pujde se prihlasit pouze skrze RSA klic)

14) na ssh serveru radeji zalohujeme soubor sshd_config na sshd_config.bak
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

15) zeditujeme soubor sshd_config
sudo nano /etc/ssh/sshd_config

16) odkomentujeme (smazem #) u radku #PasswordAutentication yes ....zmenime z yes na no /**/ disable to tunnelled clear text passwords
PasswordAutentication no

17) musime restartovat SSH sluzbu na serveru /**/ pokud je to SysVinit:
sudo service ssh restart

nebo pokud je to SystemD tak:
sudo systemctl restart ssh

18) hotovo


POSTUP 3
## NEOVERENEJ

1) mkdir ~/.ssh && chmod 700 ~/.ssh <===> vytvori a da prava slozce .ssh v home slozce
2) ssh-keygen -t rsa -b 4096 <===> vygeneruje soukromy/verejny RSA KEY Pair
## pote se vytvori ve slozce ~/.ssh soubory id_rsa (soukromy klic) a id_rsa.pub (verejny klic)
################nefunguje###########3) ssh-copy-id uzivatel@ip-adresa-serveru <===> zkopiruje verejny klic na serever na ktery se chceme prihlasovat skrze ssh ale BEZ HESLA
3) ssh-copy-id -i ~/.ssh/muj_verejny_klic user@host <===> This logs into the server host, and copies keys to the server, and configures them to grant access by adding them to the authorized_keys file. The copying may ask for a password or other authentication for the server.

4) sudo nano /etc/ssh/sshd_config <===> na prihlasenem serveru upravime configurak takto:

#Port 22 ....odkomentujeme a zmenime na nejaky nahodny port (port 22 je proflaknutej) tak treba 717

#AddressFamily any ...odkomentujeme a zmenime z any na inet <===> to znamena ze jen pres IPv4 a ne oboje IPv4 a IPv6

PermitRootLogin yes ....zmenime z yes na no <===> root se pak nemuze logovat pres ssh

PasswordAutentication yes ....zmenime z yes na no <===> NIKDO se nemuze prihlasit skrze heslo na server - pouze pomoci RSA KEY vygenerovaneho predtim

5) ulozime a restartujeme demona ssh:

sudo systemctl restart sshd //toto plati pro systemD

nebo

sudo service ssh restart //toto plati pro initV

6) otestujeme zda logim skrze RSA klic funguje tedy otevru novy terminal, a zadam
ssh uzivatel@ip-adresa-serveru -p 717 <===> port jsme prece zmenili z 22 na 717 _:)

7) nainstalujem FW na server
sudo apt-get install ufw

8) zjistime zda FW bezi, zatim by nemel bezet
sudo ufw status <===> Status: inactive

9) povolime v FW pouze jednu diru a tou je pro ssh pouze port 717
sudo ufw allow 717

10) zapnu FW a to zablokuje vse krome portu 717
sudo ufw enable
## na dotaz odpovim y

11) zjistime zda FW bezi, mel by
sudo ufw status <===> Status: active


POSTUP 4
##AUTOMATICKY POMOCI PRIKAZU "SSH-COPY-ID" POSTUP NEPOUZIVAM

IP SERVERU 192.168.0.101

1) prihlasime se na SSH server
ssh Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

2) na lokalu si vygenerujeme RSA/DSA klice - jeden je privatni (NECHAT NA LOKALU) a druhej je verejnej/public (POSLAT NA SSH SERVER kam se chceme pripojovat)
ssh-keygen -t rsa -b 4096

3) zepta se to KAM chci ulozit.. dam ENTER a necham standard tj. do skryte slozky ~/.ssh

4) zepta se to na passphrase, muzu take odentrovat - v pripade ze chci zaheslovat, tak zaheslovanim vlastne chranim privatni klic, kdyby se nekdo dostal k mymu pc

5) v nove vytvorene slozce ~/.ssh se vytvorily dva soubory: id_rsa (privatni klic) a id_rsa.pub (verejnej klic)


6) na lokalu ve slozce .ssh spustim SSH-COPY-ID - to by melo na serveru vytvorit slozku .ssh a do ni vytvorit soubor authorized_keys
ssh-copy-id Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

!! pozor pokud mam prihlasovani na ssh server na jinem portu (treba 12345) tak zadam: ssh-copy-id -p 12345 Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript. !!

7) zadam heslo na server a melo by to vypsat Number of key(s) added

8) zkusime se nalogovat do SSH serveru BEZ napsani hesla
ssh Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

9) pro zvyseni bezpecnosti jeste muzem ZAKAZAT logovani heslem (tj. pujde se prihlasit pouze skrze RSA klic)

10) na ssh serveru radeji zalohujeme soubor sshd_config na sshd_config.bak
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

11) zeditujeme soubor sshd_config
sudo nano /etc/ssh/sshd_config

12) odkomentujeme (smazem #) u radku #PasswordAutentication yes ....zmenime z yes na no /**/ disable to tunnelled clear text passwords
PasswordAutentication no

13) musime restartovat SSH sluzbu na serveru /**/ pokud je to SysVinit:
sudo service ssh restart

nebo pokud je to SystemD tak:
sudo systemctl restart ssh

14) hotovo 


Zrušení přihlašování pomocí RSA

!!!!!!!! POKUD CHCEME ZRUSIT prihlasovani na SSH server skrze RSA KLIC a dat zpet prihlaseni HESLEM pak:

1) zazalohujeme na ssh serveru soubor sshd_config
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak2

2) zeditujeme soubor sshd_config
sudo nano /etc/ssh/sshd_config

3) upravime DVA udaje!!!!!! /**/ Make sure your other authentication method such as password is enabled before disabling public key authentication method as you might completely lose remote access to your server.
a) zakomentujeme (pridame #) u radku PasswordAutentication no ....zmenime z no zpet na yes
#PasswordAutentication yes

b) a zadame u PubkeyAuthentication no
PubkeyAuthentication no

4) ulozime


No identities found

“How to fix "/usr/bin/ssh-copy-id: ERROR: No identities found"
Hi first use below command on source server
=====
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
========
After that try to ssh-copy-id …should works.


Generování dvojice SSH klíčů

Abyste se mohli autentizovat s nějakým vzdáleným serverem bez hesla, prvním krokem je vygenerovat na lokálním počítači novou dvojici veřejného a privátního SSH klíče. Vždy byste se měli autentizovat pomocí SSH klíčů, pokud nemáte jiný, opravdu pádný důvod to nedělat.

Existuje řada kryptografických algoritmů, jimiž lze generovat SSH klíče, patří mezi ně RSA (iniciály autorů šifry: Rivest, Shamir a Adleman), DSA a ECDSA. Obvykle se dává přednost klíčům RSA, které jsou také výchozím typem klíčů.

Chcete-li na lokálním počítači vygenerovat dvojici RSA klíčů, napište:

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):

Tato výzva (Zadejte soubor, kam se má uložit klíč) umožňuje zvolit umístění pro privátní RSA klíč. Stiskněte ENTER, abyste ponechali výchozí umístění, takže se bude ukládat do skrytého adresáře .ssh uvnitř vašeho uživatelského domovského adresáře. Když ponecháte výchozí vybrané umístění, bude váš SSH klient schopen nacházet klíče automaticky.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Další výzva žádá, abyste zadali heslovou frázi (passphrase) libovolné délky, kterou zabezpečíte privátní klíč (budete ji muset zadat dvakrát za sebou). Heslovou frázi, kterou teď zadáte, budete muset standardně psát pokaždé, když použijete tento privátní klíč. Je to vlastně dodatečné zabezpečovací opatření. Pokud heslovou frázi používat nechcete, stiskněte rovnou ENTER a ponechejte ji prázdnou. Mějte však na paměti, že se pak bude moci k vašim serverům přihlašovat kdokoli, kdo nějak získá kontrolu nad vaším privátním klíčem.

Pokud zvolíte, že nějakou heslovou frázi zadáte, tak když ji píšete, nic se nezobrazuje. Je to preventivní bezpečnostní opatření.

Tento postup vygeneroval dvojici SSH klíčů algoritmem RSA, uložené jsou ve skrytém adresáři .ssh uvnitř vašeho uživatelského domovského adresáře. Jsou to soubory:

~/.ssh/id_rsa <===> Privátní klíč. TENTO SOUBOR NESDÍLEJTE!
~/.ssh/id_rsa.pub <===> Sdružený veřejný klíč. Ten se může sdílet bez obav z důsledků.



Generování dvojice SSH klíčů s větším počtem bitů

SSH klíče jsou standardně 2048 bitové. Všeobecně se to považuje pro zabezpečení postačující, můžete však specifikovat větší počet bitů, potřebujete-li lépe kalený klíč.

Uděláte to tak, že uvedete argument -b a požadovaný počet bitů. Většina serverů podporuje klíče s délkou přinejmenším 4096 bitů. Další klíče možná nebudou akceptovány, bývá to prevence proti DDOS (Distributed Denial of Service, útok typu odmítnutí služby rozložený současně na mnoho uživatelů.)

ssh-keygen -b 4096

Pokud jste už dříve vytvořili jiný klíč, obdržíte dotaz, zda chcete nebo nechcete přepsat předchozí klíč:

Overwrite (y/n)?

Pokud zvolíte „yes“, předchozí klíč se přepíše a s tímto klíčem se už nebudete moci přihlašovat k serverům. Proto klíče přepisujte opatrně, až po zralé úvaze.


Odstranění nebo změna heslové fráze privátního klíče

Pokud jste k privátnímu klíči vygenerovali heslovou frázi a přejete si ji odstranit nebo změnit, udělá se to snadno.

Poznámka: Abyste mohli změnit nebo odstranit heslovou frázi, musíte znát její původní znění. Pokud jste ke klíči heslovou frázi ztratili, máte smůlu, budete muset vygenerovat novou dvojici klíčů.

Chcete-li změnit nebo odstranit heslovou frázi, napište prostě:

ssh-keygen -p

Enter file in which the key is (/root/.ssh/id_rsa):

Napište umístění klíče, který chcete modifikovat, nebo stiskněte ENTER, čímž akceptujete výchozí hodnotu:

Enter old passphrase:

Zadejte starou heslovou frázi, kterou chcete změnit. Pak budete požádáni, abyste zadali novou heslovou frázi:

Enter new passphrase (empty for no passphrase):

Enter same passphrase again:

Zadejte dvakrát za sebou novou heslovou frázi, nebo stiskněte ENTER, chcete-li heslovou frázi odstranit.


Zobrazení fingerprintu SSH klíče

Každá dvojice SSH klíčů sdílí jediný kryptografický „otisk prstu“ („fingerprint“), s kterým je možné klíče jednoznačně identifikovat. To se může hodit v mnoha různých situacích.

Chcete-li zjistit otisk prstu nějakého SSH klíče, napište:

ssh-keygen -l

Enter file in which the key is (/root/.ssh/id_rsa):

Můžete stisknout ENTER, pokud je uvedené umístění klíče správné, nebo zadejte patřičné umístění. Obdržíte řetězec obsahující bitovou délku klíče, otisk prstu, účet a houst, pro které byl klíč vytvořen, a použitý algoritmus:

4096 8e:c4:82:47:87:c2:26:4b:68:ff:96:1a:39:62:9e:4e demo@test (RSA)



Kopírování veřejného SSH klíče na server pomocí ssh-copy-id

Chcete-li na nějaký server zkopírovat veřejný klíč, abyste se pak mohli autentizovat bez hesla, existuje celá řada možných přístupů, jak to udělat.

Pokud už momentálně máte na serveru nakonfigurovaný přístup SSH přes heslo, a máte nainstalovanou utilitu ssh-copy-id, postup je jednoduchý. Nástroj ssh-copy-id je zařazený do mnoha balíků OpenSSH distribucí Linuxu, takže je velmi pravděpodobné, že ho máte nainstalovaný.

Pokud ano, přenesete snadno veřejný klíč tím, že napíšete:

ssh-copy-id
username@remote_host

Název utility, své uživatelské jméno, zavináč a vzdálený houst. Budete vyzváni, abyste zadali heslo uživatelského účtu na vzdáleném systému:

Poté, co napíšete heslo, obsah klíče ~/.ssh/id_rsa.pub se přidá na konec souboru ~/.ssh/authorized_keys uživatelského účtu:

Number of key(s) added: 1


Now try logging into the machine, with: „ssh ‚Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.′“

and check to make sure that only the key(s) you wanted were added.

Nyní se můžete pokusit přihlásit k tomuto účtu bez hesla:

ssh username@remote_host


Kopírování veřejného SSH klíče na server bez ssh-copy-id

Jestliže nemáte k dispozici utilitu ssh-copy-id, máte ale ke vzdálenému serveru SSH přístup založený na heslu, můžete zkopírovat obsah veřejného klíče jinak.

Můžete poslat obsah klíče na výstup a operátorem svislice ho předat jako vstup do příkazu ssh. Na vzdálené straně můžete zajistit, aby adresář ~/.ssh existoval, a pak přidat „pajpnutý“ obsah na konec souboru ~/.ssh/authorized_keys:

cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Budete vyzváni, abyste dodali heslo pro vzdálený účet:

The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.'s password:

Poté, co zadáte heslo, se klíč zkopíruje, což pak umožní přihlašovat se bez hesla:

ssh username@remote_IP_host


Ruční kopírování veřejného SSH klíče na server

Pokud nemáte k dispozici SSH přístup založený na heslu, budete muset dodat veřejný klíč na vzdálený server ručně.

Na lokálním stroji zjistíte obsah souboru veřejného klíče takto:

cat ~/.ssh/id_rsa.pub

ssh-rsa

Tuto hodnotu můžete zkopírovat do schránky a ručně ji vložit na patřičné umístění na vzdáleném serveru. Budete se muset do vzdáleného serveru přihlásit prostřednictvím jiných prostředků (jako je webová konzola DigitalOcean).

Na vzdáleném serveru vytvořte adresář
~/.ssh
, pokud tam ještě neexistuje:

mkdir -p ~/.ssh

Poté můžete vytvořit soubor
~/.ssh/authorized_keys
nebo přidat na jeho konec hodnotu klíče tím, že napíšete:

echo sem_vlozte_retezec_verejneho_klice >> ~/.ssh/authorized_keys

Nyní byste měli být schopni přihlašovat se do vzdáleného serveru bez hesla.

V příštím díle si projdeme, jak dále nakonfigurovat SSH. Ukážeme si například, jak obnovit autentizaci heslem pro další uživatele. V dalších dílech se pak můžete těšit na ukážku prodloužení platnosti vašeho připojení a mnoho dalších informací.