OpenBSD - klíče/keys
16.02.2019 22:10 Filed in/Kategorie: Computers
Po mnoha letech jsem se rozhodl vyzkoušet další level zabezpečení přístupu k serverům a to asymetrický klíč místo hesla.
Klientská stanice MacBook s MacOS X 10.6.8
1) Teorie
---------
Asymetrické šifrování používá dva různé klíče.
a) privátní (tajný) klíč
b) veřejný klíč
Veřejný klíč šifruje obyčejný text a privátní klíč dešifruje zašifrovaný text.
2) Kdo generuje klíče?
----------------------
Klíč si generuje uživatel sám.
Klíč nesdílí s ostatními uživateli.
Každý uživatel má svůj vlastní pár klíčů.
Uživatel může použít (jeden) vlastní pár klíčů na více zařízení.
3) Kde se generují klíče?
-------------------------
Klíče se generují na klientské stanici, privátní si nechá uživatel a veřejný uloží na server, kam se chce přihlásit.
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): /Users/user/.ssh/id_rsa/user_rsa_key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/user/.ssh/id_rsa/user_rsa_key.
Your public key has been saved in /Users/user/.ssh/id_rsa/user_rsa_key.pub.
The key fingerprint is:
aa:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:ee user@MacBook.local
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| o |
| = +S |
| + =.+ |
| . =.o + |
| ..+..+ * . |
| .+o=oE. + |
+-----------------+
$
poznámky:
a) -t rsa -- znamená typ šifrovacího klíče, použito starší RSA šifrování
b) passphrase -- heslo ke klíči
c) Enter file in which to save the key (/Users/user/.ssh/id_rsa): -- v závorce je pouze příklad
Klíče jsou vygenerovány do aktuálního adresáře (working directory) nebo
klíče jsou generovány do adresáře napsaného za dvoutečkou -- /Users/username/.ssh/test_klic
4) přesun veřejného klíče na server
-----------------------------------
Veřejný klíč na serveru potvrzuje identitu uživatele, který se přihlašuje z klientské stanice
- klíč pro běžného uřivatele je úmístěn (BSD):
- klíč pro uživatele root je umístěn (BSD): /root/.ssh/authorized_keys
Na macOS X 10.6.8 není program ssh-copy-id:
$ ssh-copy-id -i .ssh/id_rsa/user_rsa_key.pub user@1.0.0.x
-bash: ssh-copy-id: command not found
$
takže ručně je nutné vybrat obsah souboru s klíčem - obyčejný text a vložit ho do souboru na strabně serveru.
$ scp .ssh/id_rsa/user_rsa_key.pub root@1.x.x.x:/root/.ssh
root@1.x.x.x’s password:
user_rsa_key.pub 100% 404 0.4KB/s 00:00
$
$ ssh root@1.x.x.x
root@1.x.x.x’s password:
# cat .ssh/user_rsa_key.pub >> .ssh/authorized_keys
#
poznámky:
cat zkopíruje obsah (text) souboru user_rsa_key.pub a přidá ho na konec souboru authorized_keys
5) připojení se na server
-------------------------
$ ssh -i id_rsa/user_rsa_key root@1.x.x.x
Identity added: id_rsa/user_rsa_key (id_rsa/user_rsa_key)
--- zepta se poprve na heslo ke klíči
#
Pro zjednodušení vytvořit záznam o klíči
$ nano ~/.ssh/config
Host 1.x.x.x
User user_on_remote_host
Hostname 1.x.x.x -- nebo www.domena.cz
IdentityFile /Users/user/.ssh/id_rsa/user_rsa_key
pak staci napsat
$ ssh 1.x.x.x
Welcome to OpenBSD: The proactively secure Unix-like operating system.
#
6) Zrušení hesla
----------------
# nano /etc/ssh/sshd_config
#PasswordAuthentication yes
-- změnit na
PasswordAuthentication no
# /etc/rc.d/sshd restart
sshd(ok)
sshd(ok)
#
Klientská stanice MacBook s MacOS X 10.6.8
1) Teorie
---------
Asymetrické šifrování používá dva různé klíče.
a) privátní (tajný) klíč
b) veřejný klíč
Veřejný klíč šifruje obyčejný text a privátní klíč dešifruje zašifrovaný text.
2) Kdo generuje klíče?
----------------------
Klíč si generuje uživatel sám.
Klíč nesdílí s ostatními uživateli.
Každý uživatel má svůj vlastní pár klíčů.
Uživatel může použít (jeden) vlastní pár klíčů na více zařízení.
3) Kde se generují klíče?
-------------------------
Klíče se generují na klientské stanici, privátní si nechá uživatel a veřejný uloží na server, kam se chce přihlásit.
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): /Users/user/.ssh/id_rsa/user_rsa_key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/user/.ssh/id_rsa/user_rsa_key.
Your public key has been saved in /Users/user/.ssh/id_rsa/user_rsa_key.pub.
The key fingerprint is:
aa:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:ee user@MacBook.local
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| o |
| = +S |
| + =.+ |
| . =.o + |
| ..+..+ * . |
| .+o=oE. + |
+-----------------+
$
poznámky:
a) -t rsa -- znamená typ šifrovacího klíče, použito starší RSA šifrování
b) passphrase -- heslo ke klíči
c) Enter file in which to save the key (/Users/user/.ssh/id_rsa): -- v závorce je pouze příklad
Klíče jsou vygenerovány do aktuálního adresáře (working directory) nebo
klíče jsou generovány do adresáře napsaného za dvoutečkou -- /Users/username/.ssh/test_klic
4) přesun veřejného klíče na server
-----------------------------------
Veřejný klíč na serveru potvrzuje identitu uživatele, který se přihlašuje z klientské stanice
- klíč pro běžného uřivatele je úmístěn (BSD):
- klíč pro uživatele root je umístěn (BSD): /root/.ssh/authorized_keys
Na macOS X 10.6.8 není program ssh-copy-id:
$ ssh-copy-id -i .ssh/id_rsa/user_rsa_key.pub user@1.0.0.x
-bash: ssh-copy-id: command not found
$
takže ručně je nutné vybrat obsah souboru s klíčem - obyčejný text a vložit ho do souboru na strabně serveru.
$ scp .ssh/id_rsa/user_rsa_key.pub root@1.x.x.x:/root/.ssh
root@1.x.x.x’s password:
user_rsa_key.pub 100% 404 0.4KB/s 00:00
$
$ ssh root@1.x.x.x
root@1.x.x.x’s password:
# cat .ssh/user_rsa_key.pub >> .ssh/authorized_keys
#
poznámky:
cat zkopíruje obsah (text) souboru user_rsa_key.pub a přidá ho na konec souboru authorized_keys
5) připojení se na server
-------------------------
$ ssh -i id_rsa/user_rsa_key root@1.x.x.x
Identity added: id_rsa/user_rsa_key (id_rsa/user_rsa_key)
--- zepta se poprve na heslo ke klíči
#
Pro zjednodušení vytvořit záznam o klíči
$ nano ~/.ssh/config
Host 1.x.x.x
User user_on_remote_host
Hostname 1.x.x.x -- nebo www.domena.cz
IdentityFile /Users/user/.ssh/id_rsa/user_rsa_key
pak staci napsat
$ ssh 1.x.x.x
Welcome to OpenBSD: The proactively secure Unix-like operating system.
#
6) Zrušení hesla
----------------
# nano /etc/ssh/sshd_config
#PasswordAuthentication yes
-- změnit na
PasswordAuthentication no
# /etc/rc.d/sshd restart
sshd(ok)
sshd(ok)
#