Generieren Sie einen öffentlichen/privaten SSH-Schlüssel auf dem lokalen Server

Generieren Sie einen öffentlichen/privaten SSH-Schlüssel auf dem lokalen Server

Heute habe ich 3 Server (4 einschließlich des Servers, der die SSH-Befehle sendet) mit einem öffentlichen SSH-Schlüssel eingerichtet, damit ich einige Skripte automatisieren kann

Es funktioniert auf den ersten beiden Systemen, aber nicht auf dem dritten. SSH fordert beim Senden eines SSH-Befehls immer noch zur Eingabe des Kennworts auf

Generieren Sie einen öffentlichen/privaten SSH-Schlüssel auf dem lokalen Server

root@local # ssh-keygen -t rsa
file > /var/.ssh_keys/id_rsa
passphrase > (empty)
root@local # ln -s /var/.ssh_keys/id_rsa /root/.ssh/id_rsa

Schlüssel vom lokalen Server an Remote-Hosts anhängen

root@local # cat /var/.ssh_keys/id_rsa.pub | ssh root@host 'path="/var/.ssh_remote_key" && mkdir -p $path && cat >> $path/authorized_keys && ln -s $path/authorized_keys /root/.ssh/authorized_keys'

Lokaler Server

# uname -a
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux

# sshd -V
OpenSSH_6.7p1 Debian-5, OpenSSL 1.0.1k 8 Jan 2015

Remote-Server (funktioniert)

# uname -a
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux

# sshd -V
OpenSSH_6.7p1 Debian-5+deb8u3, OpenSSL 1.0.1t  3 May 2016

Remote-Server (fordert weiterhin Passwort ab)

# uname -a
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux

# sshd -V
OpenSSH_6.7p1 Debian-5+deb8u2, OpenSSL 1.0.1k 8 Jan 2015

CHMOD /root/.ssh = 0700
CHMOD /root/.ssh/authorized_keys = 0644

Antwort1

Da die beiden Remote-Server ähnliche Versionen von Unix/OpenSSH verwenden, liegt das Problem möglicherweise an permissionden Dateien im .sshOrdner.

Bitte bestätigen Sie das:

  • .sshVerzeichnisberechtigungen sind nicht schreibbar für Gruppe/andere (z. B. 700 (drwx------) oder 755(drwxr-xr-x)
  • öffentlicher Schlüssel (.pub-Datei) und authorized_keyssind 644(-rw-r--r--)
  • privater Schlüssel (id_rsa) ist 600(-rw-------)

Wenn Sie versuchen, sich rootbeim Remote-Server anzumelden, sollten Sie auch bestätigen, dass oder /etc/ssh/sshd_configenthält .PermitRootLogin yesPermitRootLogin without-password

verwandte Informationen