Local folder: ~/.ssh
Working with keys
Generating
ssh-keygen -t rsa -b 2048 -C user@host
Generates id_rsa (private key) and id_rsa.pub (public key).
Removing key from ~/.ssh/known_hosts
ssh-keygen -R "hostname"
Add key to the server
Nejdřív nakopírovat veřejný klíč serveru ke klientovi do souboru authorized_keys ručně nebo pomocí příkazu na localhostu:
ssh-copy-id uzivatel@server
Přidání klíče z lokálního souboru na vzdálený server:
cat ~/some-pubkey.pub | ssh USER@HOST "mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"
SSH agent forwarding
Umožňuje forwarding - po přihlášení na (druhý) server přes ssh pomocí klíče je možné se s tímto klíčem dále připojit na jiný (třetí) server, aniž bychom museli na druhý server kopírovat soukromý klíč.
Vygooglit "ssh-agent forwarding", dobré informace na githubu [uloženo]
- Na lokálu:
Vytvořit/uravit soubor .ssh/config, aby tam bylo:Host *
Kontrola jestli se použije ten správný klíč: ssh-add -L (if there is not your desired key, then you have to add it with ssh-add /path/to/private/key/file)
ForwardAgent yes
Musí běžet ssh-agent
Klíčenka (gnome-keyring) si odchytává zadávání passphrase ke klíči - poprvé v relaci vyskočí okno pro zadání hesla pak už se samo načítá z klíčenky. - Na druhém serveru:
přidat veřejný klíč lokálu do authorized_keys (klasika - příkazem ssh-copy-id uzivatel@server na lokálu) - Na třetím serveru:
přidat veřejný klíč lokálu do authorized_keys (klasika - příkazem ssh-copy-id uzivatel@server na lokálu)
Odkazy:
http://wiki.ubuntu.cz/SSH [uloženo]
http://www.root.cz/clanky/pouzivani-klicu-v-openssh/ [uloženo]
Good troubleshooting on GitHub [saved]
Using multiple local (private) keys
Just paste public and private keys to the subfolder my-second-server and edit or create the config file in ~/.ssh/config:
Host my-second-server.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/my-second-server/id_rsa
Troubleshooting: Show current keys with ssh-add -L (see above)
Multiple public keys for one host
ssh-keyscan -t rsa server_ip
server_ip ssh-rsa <KEY>
Fingerprints
Displays the visualisation of the remote server public key. Can be useful when logging to your well-known remotes server from another machine (if someone is doing the man-in-the-middle attack, you will see the different fingerprint than you are habituated).
Do ~/.ssh/config/ přidat:
Host *
VisualHostKey yes
+--[ RSA 2048]----+ |+B+*==+.. | |= +.o... . | |.E + . . | |. o . | | o S . | | . . o | | | | | | | +-----------------+