GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Führen Sie SSH und SCP ohne Passworteingabe auf openSSH aus

In diesem Artikel erkläre ich, wie man ssh und scp durchführt, ohne das Passwort einzugeben, indem man die SSH-Public-Key-Authentifizierung mit dem SSH-Agenten auf openSSH verwendet

Bei der SSH-Schlüssel-basierten Authentifizierung gibt es zwei Sicherheitsebenen. Damit Sie sich anmelden können, benötigen Sie sowohl den privaten Schlüssel als auch die Passphrase. Selbst wenn einer von ihnen kompromittiert ist, kann sich der Angreifer immer noch nicht bei Ihrem Konto anmelden, da beide zum Anmelden benötigt werden. Dies ist weitaus besser als die typische passwortbasierte Authentifizierung, bei der ein Angreifer Zugriff auf das System erhalten kann, wenn das Passwort kompromittiert wird.

Es gibt zwei Möglichkeiten, ssh und scp auszuführen, ohne das Passwort einzugeben:

  1. Keine Passphrase. Lassen Sie beim Erstellen des Schlüsselpaars die Passphrase leer. Verwenden Sie diese Option für die automatisierte Stapelverarbeitung. für z.B. Wenn Sie einen Cron-Job ausführen, um Dateien zwischen Computern zu kopieren, ist dies eine geeignete Option.
  2. Passphrase und SSH-Agent verwenden. Wenn Sie ssh und scp interaktiv von der Befehlszeile aus verwenden und das Passwort nicht jedes Mal verwenden möchten, wenn Sie ssh oder scp ausführen, empfehle ich die vorherige Option (keine Passphrase) nicht, da Sie eine Ebene eliminiert haben Sicherheit bei der ssh-schlüsselbasierten Authentifizierung. Verwenden Sie stattdessen die Passphrase beim Erstellen des Schlüsselpaars und verwenden Sie den SSH-Agenten, um ssh und scp auszuführen, ohne jedes Mal das Passwort eingeben zu müssen, wie in den folgenden Schritten erläutert.

Die folgenden 8 Schritte erklären, wie Sie SSH und SCP von einem lokalen Host zu einem Remote-Host ausführen, ohne das Passwort auf dem openSSH-System einzugeben

1. Stellen Sie sicher, dass der lokale Host und der Remote-Host openSSH ausführen

[local-host]$ ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006

[remote-host]$ ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006

2. Generieren Sie das Schlüsselpaar auf dem lokalen Host mit ssh-keygen

[local-host]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):<Hit enter>
Enter passphrase (empty for no passphrase): <Enter your passphrase here>
Enter same passphrase again:<Enter your passphrase again>
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
31:3a:5d:dc:bc:81:81:71:be:31:2b:11:b8:e8:39:a0 jsmith@local-host

Der öffentliche Schlüssel und der private Schlüssel werden normalerweise im Ordner .ssh in Ihrem Home-Verzeichnis gespeichert. In diesem Beispiel befindet es sich unter /home/jsmith/.sshd. Sie sollten den privaten Schlüssel mit niemandem teilen.

Standardmäßig generiert ssh-keygen auf openSSH ein RSA-Schlüsselpaar. Sie können auch ein DSA-Schlüsselpaar generieren mit:ssh-keygen -t dsa Befehl.

3. Öffentlichen Schlüssel auf dem Remote-Host installieren.

Kopieren Sie den Inhalt des öffentlichen Schlüssels vom lokalen Host und fügen Sie ihn in /home/jsmith/.ssh/authorized_keys auf dem Remote-Host ein. Wenn /home/jsmith/.ssh/authorized_keys bereits einen anderen öffentlichen Schlüssel hat, können Sie diesen am Ende anhängen. Wenn das .ssh-Verzeichnis unter Ihrem Home-Verzeichnis auf dem Remote-Host nicht existiert, erstellen Sie es bitte.

[remote-host]$ vi ~/.ssh/authorized_keys 
ssh-rsa ABIwAAAQEAzRPh9rWfjZ1+7Q369zsBEa7wS1RxzWR jsmith@local-host

In einfachen Worten, kopieren Sie local-host:/home/jsmith/.ssh/id_rsa.pub nach remote-host:/home/jsmith/.ssh/authorized_keys

4. Erteilen Sie dem .ssh-Verzeichnis auf dem Remote-Host die entsprechende Berechtigung.

[remote-host]$ chmod 755 ~/.ssh
[remote-host]$ chmod 644 ~/.ssh/authorized_keys

5. Melden Sie sich vom lokalen Host zum Remote-Host an, indem Sie die SSH-Schlüsselauthentifizierung verwenden, um zu überprüfen, ob sie ordnungsgemäß funktioniert.

[local-host]$ <You are on local-host here>

[local-host]$ ssh -l jsmith remote-host
Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <Enter your passphrase here>
Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
No mail. [remote-host]$ <You are on remote-host here>

6. Starten Sie den SSH-Agenten auf local-host, um ssh und scp auszuführen, ohne die Passphrase mehrmals eingeben zu müssen.

Überprüfen Sie, ob der SSH-Agent bereits ausgeführt wird, falls nicht, starten Sie ihn wie unten gezeigt.

[local-host]$ ps -ef | grep ssh-agent
511 9789 9425 0 00:05 pts/1 00:00:00 grep ssh-agent

[local-host]$ ssh-agent $SHELL

[local-host]$ ps -ef | grep ssh-agent
511 9791 9790 0 00:05 ? 00:00:00 ssh-agent /bin/bash
511 9793 9790 0 00:05 pts/1 00:00:00 grep ssh-agent

7. Laden Sie den privaten Schlüssel in den SSH-Agenten auf dem lokalen Host.

[local-host]$ ssh-add
Enter passphrase for /home/jsmith/.ssh/id_rsa: <Enter your passphrase here>
Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)

Im Folgenden sind die verschiedenen Optionen aufgeführt, die in ssh-add verfügbar sind:

  • ssh-add :Lädt eine bestimmte Schlüsseldatei.
  • ssh-add -l:Alle im SSH-Agenten geladenen Schlüssel auflisten.
  • ssh-add -d :Löscht einen bestimmten Schlüssel aus dem SSH-Agenten
  • ssh-add -D:Alle Schlüssel löschen

8. Führen Sie SSH oder SCP zum Remote-Home vom lokalen Host aus, ohne das Passwort einzugeben.

[local-host]$<You are on local-host here>

[local-host]$ ssh -l jsmith remote-host
Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
No mail. <ssh did not ask for passphrase this time> [remote-host]$ <You are on remote-host here>

Helfen Sie mir, die Neuigkeiten über The Geek Stuff zu verbreiten.

Bitte hinterlassen Sie Ihre Kommentare und Ihr Feedback zu diesem Artikel. Wenn Ihnen dieser Beitrag gefällt, würde ich mich sehr freuen, wenn Sie den Blog „The Geek Stuff“ verbreiten könnten, indem Sie ihn über den unten stehenden Link zu del.icio.us oder Digg hinzufügen.


Linux
  1. SSH-Anmeldung beim RHEL 7-Server ohne Passwort

  2. SSH – Generieren und Arbeiten mit SSH-Schlüsseln

  3. Ssh – Beschränken eines Ssh/scp/sftp-Benutzers auf ein Verzeichnis?

  4. Ssh – Der Unterschied zwischen einem Openssh-Schlüssel und einem Putty-Schlüssel?

  5. Wie kopiert man Dateien aus der Ferne über SSH, ohne sein Passwort einzugeben?

So richten Sie die SSH-Anmeldung ohne Passwort ein

So richten Sie den öffentlichen und privaten SSH-Schlüssel unter Linux ein

Installieren und verwenden Sie WinSCP

So kopieren Sie Dateien aus der Ferne über SSH, ohne ein Passwort einzugeben

Ubuntu-Tipps:So melden Sie sich an, ohne Benutzername und Passwort einzugeben

TigerVNC + SSH ohne VNC-Passwort?