Om SSH-sleutels tussen twee servers in te stellen, moeten we deze stappen volgen:
Stap 1: Maak een sleutelpaar in de bronserver
Maak een sleutelpaar op de bronserver. Wanneer we de opdracht ssh-keygen geven, wordt standaard een 2048-bits RSA-sleutelpaar gemaakt en als u sterkere codering nodig hebt, kunt u ook 4096-bits gebruiken. Daarvoor moet je "-b 4096" gebruiken in het ssh-keygen-commando end. Ik gebruik hier de standaard.
Een paar dingen die moeten worden geregeld in de onderstaande uitvoer:
In de regel "Voer het bestand in waarin de sleutel moet worden opgeslagen" (/wortel/.ssh/id_rsa):”
Het vraagt het pad om de sleutel op te slaan en de standaard is normaal gesproken prima. Als de standaardinstelling goed is, kunt u gewoon op enter drukken. Als je een alternatief pad wilt proberen, moet je daar hetzelfde opgeven. Soms zegt dit als volgt:
/wortel/.ssh/id_rsa bestaat al. Overschrijven (j/n)?U moet een kopie nemen van de .ssh-map voordat u wijzigingen aanbrengt of moet weten wat u doet. Als u een Ja verzendt, werkt de oude sleutel (indien al in gebruik) niet.
In de regel "Voer wachtwoordzin in (leeg voor geen wachtwoordzin):" Dit is een extra beveiligingsprocedure die elke keer dat u probeert in te loggen op SSH om een wachtwoordzin vraagt en die werkt als een 2-stapsverificatie. Maar als je ssh-toegang nodig hebt voor scripting of andere directe werken en snelle werken, dan is het beter om dit niet te hebben. Behalve het scripten of automatiseren van de werken, raden we je aan dit zeker te hebben.
Volledig resultaat van de opdracht ter referentie:
[e-mail beveiligd]:~$ ssh-keygenPubliek/privé rsa-sleutelpaar genereren.
Voer het bestand in waarin u de sleutel wilt opslaan (/root/.ssh/id_rsa):
Gemaakte map '/root/.ssh'.
Voer wachtwoordzin in (leeg voor geen wachtwoordzin):
Voer dezelfde wachtwoordzin opnieuw in:
Uw identificatie is opgeslagen in /root/.ssh/id_rsa.
Je openbare sleutel is opgeslagen in /root/.ssh/id_rsa.kroeg.
De belangrijkste vingerafdruk is:
SHA256:z4nl0d9vJpo/5bdc4gYZh8nnTjHtXB4Se/UqyuyigUI sumesh@Sree
De willekeurige afbeelding van de sleutel is:
+---[RSA 2048]----+
| |
| . .|
| . ooo.o|
| .=o=o+|
| E S o .*oBo|
| . . * uit+.+.=|
| … o=. =ooo|
| . … + o*.B|
| … uit. o+oB+|
+----[SHA256]-----+
[e-mail beveiligd]~$
Stap 2: Kopieer dit aangemaakte sleutelpaar naar uw bestemmingsserver
Er zijn 2 verschillende manieren om dit naar uw bestemmingsserver te kopiëren
- De opdracht ssh-copy-id gebruiken
- De ssh-sleutel kopiëren met de normale ssh-gebruiker/pass als één voering vanaf onze lokale machine of na inloggen op de server.
2.1 De opdracht ssh-copy-id gebruiken
ssh-copy-id zal het kopiëren en instellen van de sleutel naar een externe server op de juiste manier voor u afhandelen. Zodra de opdracht is voltooid, hebt u geen wachtwoord meer nodig voor elke login. Nu kunt u al uw geautomatiseerde scripts schrijven voor systeembeheerders zonder dat u handmatig een wachtwoord hoeft in te voeren en tijd besparen op de dagelijkse toegang tot systemen die u altijd gebruikt.
Eerst moet u controleren of er een dergelijke opdracht is en of de opdracht werkt en de gebruiker die u probeert toegang heeft tot deze opdracht, dan kunt u deze opdracht gebruiken om de openbare sleutel naar de externe server te kopiëren. Dit hulpprogramma scant uw lokale account op openbare rsa-sleutels en vraagt u om het wachtwoord van het account van de externe gebruiker.
Hier gaan we de root ssh-sleutel kopiëren naar de servertoegang op rootniveau. Dus om dit gekopieerd te krijgen, moet je inloggen / overschakelen naar de gebruiker waarvoor je de sleutel hebt gemaakt. In dit geval proberen we root-root-verbinding.
De volledige uitvoer staat hieronder en ik voeg de benodigde details daartussen toe
root@Source]]:~$ ssh-copy-id [email protected] -p 1986De authenticiteit van gastheer '[192.1.1.19]:1986 ([192.1.1.19]:1986)' kan niet worden vastgesteld.
ECDSA-sleutelvingerafdruk is SHA256:YYOj54aEJvIle4D2osDiEhuS0NEDImPTiMhHGgDqQFk.
Weet u zeker dat u door wilt gaan met verbinden (ja/nee)? Ja
Als u dit voor de eerste keer gebruikt, krijgt u zo'n antwoord en moet u ja typen en vervolgens op enter drukken
/usr/bin/ssh-copy-id: INFO: probeert in te loggen met de nieuwe sleutel(s),om al geïnstalleerde bestanden eruit te filteren
/usr/bin/ssh-copy-id: INFO: 1 sleutel(s) moeten nog worden geïnstalleerd -- als u daarom wordt gevraagd
nu is het om de nieuwe sleutels te installeren
[email protected]'s wachtwoord:
Voer het wachtwoord in en druk vervolgens op enter.
Aantal sleutel(s) toegevoegd: 1Probeer nu in te loggen op de machine, met: “ssh -p '1986"[email protected]'”
en controleer of het werkt zoals verwacht.
Hierna kunt u inloggen op de server zonder wachtwoord. Zodra wachtwoordloze authenticatie goed werkt, kunt u de wachtwoordauthenticatie uitschakelen, zodat u ssh-toegang kunt vergrendelen met alleen ssh-sleutels
2.2 De ssh-sleutel kopiëren met de normale ssh-gebruiker/pas handmatig
Als je op de een of andere manier niet in staat bent om dat bovenstaande commando te laten werken, zal ik de stappen toevoegen zodat je de ssh-sleutel en het wachtwoord minder auth kunt kopiëren van je machine naar je server.
Hiervoor moeten we de inhoud van uw id_rsa . handmatig toevoegen.pub-bestand naar de /root/.ssh/authorized_keys bestand op uw doelcomputer. Als u de sleutel naar de rootgebruiker gaat kopiëren, is de locatie: /wortel/.ssh/authorized_keys .
Vanaf stap 1: je hebt misschien de onderstaande regel gezien:
Uw openbare sleutel is opgeslagen in /wortel/.ssh/id_rsa.kroeg.
Dit zegt dat de openbare sleutel die u naar de externe server moet kopiëren zich in het bovenstaande bestand bevindt. U moet dus de inhoud van dit bestand kopiëren en ze vervolgens kopiëren of plakken in de geautoriseerde_sleutels van de externe server
Dus doe de onderstaande stappen
Onderstaande opdracht geeft u de te kopiëren sleutel:
[e-mail beveiligd]$ cat /root/.ssh/id_rsa.kroegssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9Hg
H1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ
8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUS
GhrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UV
KzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ik
rygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZ
X3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCS
q54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY0
95ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G
2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== root@Bron
Log in op de externe server waarnaar u deze bovenstaande sleutel moet kopiëren en zorg ervoor dat u dezelfde gebruiker gebruikt waarnaar u de ssh-sleutel moet kopiëren. Als u directe root-toegang nodig heeft, kopieert u de sleutel rechtstreeks naar /root/.ssh/ sectie
Een map maken .ssh als het niet bestaat
Om te controleren of dat bestaat en zo niet, maak het dan aan met behulp van de onderstaande opdrachten:
[e-mail beveiligd]:$ ls -l /root/.sshAls de map er niet is, maak deze dan aan met de onderstaande opdracht:
[email protected]$ mkdir -p /root/.ssh[e-mail beveiligd]$ raak /root/ aan.ssh/authorized_keys
[e-mail beveiligd]:$ echo "ssh-rsa"
AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxI
xvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3
EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZV
IpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZI
SvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1
nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly
57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsd
BIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ==root@Bron“ >>
/wortel/.ssh/authorized_keys
Zorg ervoor dat de toestemming van de map correct is
chmod -R go= /root/.ssh/Probeer hierna in te loggen op de server vanaf een nieuwe terminal en zorg ervoor dat keyless auth werkt zoals verwacht. Schakel pas dan wachtwoordverificatie uit in de ssh-configuratie.
OPMERKING: Zorg ervoor dat u zich naar behoefte kunt aanmelden bij de server (ofwel rechtstreeks vanaf uw computer, of u kunt inloggen bij een andere gebruiker op de externe server en handmatig overschakelen naar root vanaf dat account met su of sudo ) en dan alleen schakel wachtwoord uit, anders bestaat de kans dat root-gebruikers worden vergrendeld.
Als je iets nodig hebt, kun je altijd contact met me opnemen voor hulp en je opmerkingen delen.