Ich bin neu beim MacBook und führe El Capitan aus.
Ich migriere meine Maschinennutzung von einem PC auf ein MacBook. Ich bin langjähriger Benutzer von PuTTY und SuperPuTTY auf einem PC.
Ich möchte Anmeldeinformationen für meine Webserver im MacBook Terminal erstellen und speichern, genau wie ich es in SuperPuTTY auf dem PC getan habe.
Ist es möglich, Anmeldeinformationen für den Webserver in Mac Terminal zu speichern?
Hier ist mein Gesamtziel:
Ich würde gerne wissen, ob es in Mac Terminal eine einfache Möglichkeit gibt, die folgenden Anmeldeinformationen für die Befehlszeile zu speichern und dann eine Art Shortcode zu verwenden, um über Terminal eine Verbindung zu meinem Webserver herzustellen:
ssh -p 2200 root@123.456.789.012
Password: ****************************************************************
Ich verwalte und verbinde mich mit 5 verschiedenen Webservern, sodass das Sortieren und Organisieren der Anmeldedaten in einer kurzen/schnellen Verbindungsmethode eine enorme Zeitersparnis wäre. Vor allem, weil meine Passwörter kryptische 64-Zeichen-Strings sind.
Sie können Ihren öffentlichen Schlüssel auf die Remote-Computer kopieren. Solange die Authentifizierung mit öffentlichem Schlüssel aktiviert ist und Ihr öffentlicher Schlüssel auf dem Remotecomputer vorhanden ist, können Sie ssh
auf die Computer zugreifen, ohne ein Kennwort angeben zu müssen.
Zuerst müssen Sie ein öffentliches/privates Schlüsselpaar wie folgt generieren:
ssh-keygen -t rsa
Folgen Sie den Anweisungen. Wenn Sie gefragt werden, ob Sie den Schlüssel mit einer Passphrase schützen möchten, sagen Sie JA! Es ist eine schlechte Angewohnheit, Ihre Schlüssel nicht mit einem Passwort zu schützen, und ich zeige Ihnen, wie Sie das Passwort nur ab und zu eingeben müssen.
Wenn Sie bereits ein Schlüsselpaar haben, können Sie den obigen Schritt überspringen.
Angenommen, Ihr ssh-Schlüssel existiert auf Ihrem Mac als ~/.ssh/id_rsa.pub
, können Sie ihn auf einem Remote-Computer installieren, indem Sie Folgendes ausführen:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Für Ihr oben zitiertes spezifisches Serverbeispiel würde der Befehl wie folgt aussehen:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Sie müssen das Passwort für diese Kopie eingeben root@123.456.789.012
, aber dies sollte das letzte Mal sein, dass Sie dies tun müssen. Angenommen, der Remote-Server sshd
ist für die Authentifizierung mit öffentlichem und privatem Schlüssel eingerichtet, wenn Sie jetzt eine SSH-Verbindung zur Box herstellen, sollte er Sie nicht nach einem Passwort für das root
Konto fragen – stattdessen werden Sie nach dem Passwort für Ihren Schlüssel gefragt . Lesen Sie weiter, um zu erfahren, wie Sie dies zu etwas machen, das Sie nicht ständig eingeben müssen.
Wiederholen Sie das Obige für jeden Computer, auf den Sie sich mit Ihren Schlüsseln anstelle eines Passworts einloggen möchten.
Bitte beachten Sie, dass jeder , der Zugriff auf Ihre ~/.ssh/id_rsa
Datei hat, per ssh auf diesen Computer zugreifen kann, root
ohne ein Passwort für den entfernten Computer anzugeben. Der Kennwortschutz der Schlüsseldatei stellt sicher, dass sie das Kennwort für diesen Schlüssel kennen müssen, um ihn verwenden zu können. Stellen Sie sicher, dass die Datei sicher ist. Verwenden Sie die Festplattenverschlüsselung auf Ihrem Mac und halten Sie die Berechtigungen für die Datei und das ~/.ssh/
Verzeichnis streng.
Um die Verwendung des Schlüssels zu vereinfachen, ohne jedes Mal das Passwort eingeben zu müssen, führt OS X einen ssh-agent
Prozess im Hintergrund auf Ihrem Computer aus. Dieser Agent speichert das Schlüsselpaar bei der ersten Verwendung im Cache, sodass Sie Ihr Passwort nur ab und zu eingeben müssen. Wenn Sie Ihren Mac nur in den Ruhezustand versetzen, starten Sie ihn niemals neu, Sie können längere Zeit ohne Passworteingabe auskommen.
Sie können alle Ihre SSH-Schlüssel vorab zwischenspeichern, ssh-agent
indem Sie Folgendes ausführen:
ssh-add
Jetzt müssen Sie sich nur noch das Schlüsselpasswort merken , nicht die vielen verschiedenen Kontopasswörter. Normalerweise bewahre ich meine Schlüsselpasswörter in 1Password auf (keine Zugehörigkeit), was die Anzahl der Passwörter, die ich mir merken muss, weiter vereinfacht. Dann schaue ich sie einfach in 1Password nach und schneide sie aus und füge sie in das Terminal ein, wenn ich gelegentlich meinen Mac neu starte und meinen Lauf ssh-agent
neu starte.
Wenn Sie in dieser Frage das Kopieren Ihres Schlüssels auf Remotecomputer mit der Terminal.app-Verbindungsverwaltungslösung kombinieren , haben Sie etwas, das PuTTY für die GUI-Verbindungserfahrung sehr nahe kommt.
Überprüfen Sie auf der Serverseite Folgendes /etc/ssh/sshd_config
und stellen Sie sicher:
PubkeyAuthentication yes
ist in der Konfiguration aktiviert (standardmäßig in OpenSSH). Sie können auch Folgendes einstellen:
PasswordAuthentication no
Während Sie dort sind, ist die passwortbasierte Authentifizierung deaktiviert und Schlüssel sind die einzige Möglichkeit, auf das Gerät zuzugreifen.
Sie müssen sshd auf dem Computer neu starten, wenn Sie Änderungen an der Konfigurationsdatei vornehmen.
PasswordAuthentication yes
auf der Serverseite belassen und PuTTY wird weiterhin so funktionieren, wie es auf Ihrem Windows-Computer immer funktioniert hat. Dies ist kein Entweder-Oder-Szenario – Sie können beide Arten der Authentifizierung auf dem Server zulassen. PuTTY unterstützt auch die Autorisierung öffentlicher/privater Schlüssel wie diese FWIW. Sie können Ihre ~/.ssh/id_rsa*
Dateien auf Ihren Windows-Computer kopieren und zur Authentifizierung beim Server in PuTTY importieren. PuTTY verwendet unter der Haube genau die gleichen OpenSSH-Bibliotheken für die Verbindung wie ssh
unter OS X.ssh-copy-id
Befehl einfacher: ssh-copy-id user@example.com
. Es ist nicht standardmäßig auf OS X installiert, aber es ist nur ein brew
Weg....bash_profile
Zeug entfernt und festgestellt, dass OS X den Agenten für Sie ausführt.ssh-add
funktioniert auch in Sierra (OS X 10.12). Dankessh-add -k ~/.ssh/id_rsa
Sie können sshpass verwenden, um das Passwort zu speichern und müssen es nicht jedes Mal eingeben, was keine gute Praxis ist (Sicherheitsprobleme).
Befolgen Sie die Anweisungen zur Installation von Mac OS X auf: https://gist.github.com/arunoda/7790979
Wenn Sie sshpass installiert haben, führen Sie es aussshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no root@123.456.789.012:2200
Machen Sie dasselbe für Ihre 5 Webserver und Sie müssen das Passwort nicht jedes Mal eingeben.
ssh -p 2200 root@123.456.789.012
und Password: **********************
?ssh-copy-id
ist nicht Teil der Standard-OS-X-Distribution.Zusätzlich zu den öffentlichen/privaten Schlüsseln kann die .ssh/config-Datei konfiguriert werden, um die Verwendung von ssh-Befehlen zu erleichtern, wie Aliase, Standardbenutzer/Port pro Server, ssh-Optionen, Proxy-Befehle...
Grundsätzlich kann alles Komplizierte, das Sie in einen ssh-Befehl einfügen können, auch in dieser Datei enthalten sein.
Ich habe Putty als natives Anwendungspaket auf den Mac portiert, sodass Sie keine Macports oder Terminals benötigen, wenn Sie kein technischer Benutzer sind.
Weitere Informationen mit Screenshots finden Sie hier: http://www.wine-reviews.net/2016/08/putty-for-mac-os-x-now-available.html
Prost,
Fahrrad