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

Ssh – Wie vermeide ich, dass Ssh um Erlaubnis fragt?

Wir versuchen, die Installation von Oracle-Knoten für die RAC-Installation zu beschleunigen.
Dies erfordert, dass wir ssh installieren und konfigurieren, damit es nicht zur Eingabe eines Passworts auffordert.

Das Problem ist:
Bei der ersten Verwendung werden wir nach

gefragt
RSA key fingerprint is 96:a9:23:5c:cc:d1:0a:d4:70:22:93:e9:9e:1e:74:2f.
Are you sure you want to continue connecting (yes/no)? yes

Gibt es eine Möglichkeit, das zu vermeiden, oder sind wir dazu verdammt, uns von jedem Server mindestens einmal manuell mit jedem Server zu verbinden?

Akzeptierte Antwort:

Aktualisierung Dezember 2019:

Wie Chris Adams weiter unten ausgeführt hat, gab es in den 6,5 Jahren, seit diese Antwort geschrieben wurde, eine ziemlich bedeutende Änderung an Openssh, und es gibt eine neue Option, die viel sicherer ist als der ursprüngliche Ratschlag unten:

* ssh(1): expand the StrictHostKeyChecking option with two new
   settings. The first "accept-new" will automatically accept
   hitherto-unseen keys but will refuse connections for changed or
   invalid hostkeys. This is a safer subset of the current behaviour
   of StrictHostKeyChecking=no. The second setting "off", is a synonym
   for the current behaviour of StrictHostKeyChecking=no: accept new
   host keys, and continue connection for hosts with incorrect
   hostkeys. A future release will change the meaning of
   StrictHostKeyChecking=no to the behaviour of "accept-new". bz#2400

Anstatt also StrictHostKeyChecking no zu setzen in Ihrer ssh_config Datei, setzen Sie StrictHostKeyChecking accept-new .

Setzen Sie StrictHostKeyChecking no in Ihrer /etc/ssh/ssh_config Datei, wo es eine globale Option sein wird, die von jedem Benutzer auf dem Server verwendet wird. Oder legen Sie es in Ihrem ~/.ssh/config fest Datei, wo es die Standardeinstellung nur für den aktuellen Benutzer ist. Oder Sie können es auf der Befehlszeile verwenden:

ssh -o StrictHostKeyChecking=no -l "$user" "$host"

Hier ist eine Erklärung, wie dies von man ssh_config aus funktioniert (oder sehen Sie sich diese aktuellere Version an):

StrictHostKeyChecking

      Wenn dieses Flag auf „yes“ gesetzt ist, ssh fügt niemals automatisch
      Hostschlüssel zu $HOME/.ssh/known_hosts hinzu Datei und weigert sich,
      eine Verbindung zu Hosts herzustellen, deren Hostschlüssel sich geändert hat.
      Dies bietet maximalen Schutz
      vor Trojaner-Angriffen, kann jedoch
      lästig sein, wenn /etc/ssh/ssh_known_hosts Datei ist
      schlecht gewartet,
      oder es werden häufig Verbindungen zu neuen Hosts hergestellt. Diese
      Option zwingt den Benutzer, alle neuen Hosts manuell hinzuzufügen. Wenn dieses
      Flag auf "no" gesetzt ist, ssh fügt automatisch neue Hostschlüssel zu
      den bekannten Hostdateien des Benutzers hinzu. Wenn dieses Flag auf „ask“ gesetzt ist, werden neue
      Hostschlüssel zu den bekannten Hostdateien des Benutzers hinzugefügt,
      nachdem der Benutzer bestätigt hat, dass er das wirklich tun möchte, und ssh weigert sich, eine Verbindung zu Hosts herzustellen, deren Hostschlüssel sich geändert hat.
      Die Hostschlüssel bekannter Hosts werden in
      allen Fällen automatisch überprüft. Das Argument muss „Ja“, „Nein“ oder „Fragen“ lauten. Die
      Standardeinstellung ist „ask“.

Linux
  1. So konfigurieren Sie benutzerdefinierte SSH-Verbindungen, um den Remotezugriff zu vereinfachen

  2. So verwenden Sie SSH-Tunneling für den Zugriff auf eingeschränkte Server

  3. So beheben Sie den anstößigen Schlüssel in der Datei ~/.ssh/known_hosts

  4. So verbinden Sie einen Remote-Host mit dem ssh-Befehl

  5. Wie scp über eine Zwischenmaschine?

So erstellen Sie virtuelle Hosts auf Apache Server, um mehrere Websites zu hosten

So konfigurieren Sie virtuelle Apache-Hosts in Ubuntu 18.04 LTS

So richten Sie virtuelle Apache-Hosts unter Ubuntu 20.04 ein

Verwalten von dedizierten Hosts

So fügen Sie dem VS-Code einen SSH-Schlüssel hinzu und stellen eine Verbindung zu einem Host her

So deaktivieren Sie die Überprüfung des SSH-Hostschlüssels in Linux