Das Erstellen und Installieren eines Unix-basierten SSH-Authentifizierungsschlüssels mit öffentlichem Schlüssel ist einfach und fast identisch, aber mühsam.
Ich wollte dies so weit wie möglich automatisieren.
Ich denke, was Sie im Allgemeinen tun, ist so.
# (1)Schlüsselerstellung
ssh-keygen -N "" -t rsa -f ~/.ssh/id_rsa
# (2-a)Übertragen Sie den Schlüssel auf den Server
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
# (2-b)Oder den Server manuell autorisiert_Zu Schlüsseln hinzufügen
cat ~/.ssh/id_rsa.pub| ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/ && chmod 755 ~/"
# (3)Fügen Sie bei Bedarf Informationen zum privaten Schlüssel hinzu
vi ~/.ssh/config
Ich benutze es nicht jeden Tag Wenn es viele Zielserver gibt, wird es ein Ärger sein. Ich denke, es kann automatisiert werden. Ich dachte, das wäre der Auslöser.
Es wurde bestätigt, dass es unter Mac OS X und CentOS 7 funktioniert. Ich denke, dass ssh unter Unix / Linux verwendet werden kann, und es kann verwendet werden, wenn Python 2.7 funktioniert.
Sie können die erforderlichen Befehle von (1), (2) und (3) mit einem Befehl ausführen. Wenn Sie (2) benötigen, müssen Sie das Serverkennwort nur einmal übertragen.
Seien Sie versichert, dass die hinter den Kulissen ausgeführten Befehle grün (?) Angezeigt werden.
Ich denke, dass es praktisch ist, wenn Sie versuchen, die Authentifizierung mit öffentlichem Schlüssel vorerst aus dem leeren Zustand heraus einzustellen, wenn Sie VPS usw. ausgeliehen haben.
Umgebung, in der python2.7.x ausgeführt werden kann Das Programm selbst wird zu einer Quelle gemacht, so dass es leicht gehandhabt werden kann.
Klicken Sie hier für das Repository https://github.com/yuki2006/pubkey
Wenn nur der Hauptkörper ausreicht
wget https://raw.githubusercontent.com/yuki2006/pubkey/master/pubkey.py
Weil es private Schlüssel behandelt Bitte verwenden Sie nur diejenigen, die das Funktionsprinzip verstehen.
Der Entwickler garantiert nicht, dass Probleme mit diesem Tool auftreten.
python pubkey.py
#Oder mit Ausführungsberechtigung
./pubkey.py
./pubkey.py -h
usage: pubkey.py [-h] [-l] [-p PrivateKeyPath] [-k] [-c] [-a ALIAS]
[-N PassPhrase]
server
positional arguments:
server user@server
optional arguments:
-h, --help show this help message and exit
-l, --Mit der Option LocalOnly wird der Vorgang auf dem Server ausgeführt
Ich werde nicht arbeiten.
-p PrivateKeyPath, --private PrivateKeyPath
privater Schlüsselpfad[default
/Users/yuki2006/.ssh/id_rsa]
-k, --Generieren Sie einen Schlüssel mit keygen keygen
-c, --config .ssh/Schreiben Sie Hostinformationen in die Konfiguration
-a ALIAS, --alias ALIAS
-Gültig nur mit der Option c,
Von der Konfigurationsdatei
Stellen Sie das Feld Host auf diesen Wert ein
-N Passphrase Gibt die Passphrase an. Leerzeichen sind ebenfalls möglich
Es ist Noh.(-(Gültig, wenn die Option k verwendet wird)
Minimale Optionen
./pubkey.py [email protected]
Führen Sie (2) mit ~ / .ssh / id_rsa.pub als öffentlichem Schlüssel aus.
Fügen Sie den öffentlichen Schlüssel zu ~ / .ssh / authorized_keys unter [email protected] hinzu.
Wenn zu diesem Zeitpunkt der Befehl ssh-copy-id
lokal verwendet werden kann, verwenden Sie (2-a), und wenn er nicht verwendet werden kann, führen Sie (2-b) aus.
Bitte geben Sie das Serverpasswort ein.
./pubkey.py -k [email protected]
Führen Sie (1) aus, bevor Sie (2) ausführen. Zu diesem Zeitpunkt wird (1) einfach aufgerufen. Geben Sie daher die Passphrase entsprechend der Anzeige ein.
./pubkey.py -N "" -k [email protected]
Dies ist für diejenigen gedacht, die beim Aufrufen von (1) Probleme beim Eingeben einer Passphrase haben. Die Option -N wird beim Aufruf von ssh-keygen angehängt.
./pubkey.py -p ~/.ssh/key -N "" -k [email protected]
./pubkey.py --private ~/.ssh/key -N "" -k [email protected]
Wenn Sie etwas anderes als den privaten Standardschlüssel verwenden möchten. Geben Sie den Pfad für den privaten Schlüssel nach -p an. Der verwendete öffentliche Schlüssel ist einer mit hinzugefügtem .pub, z. B. ~ / .ssh / key.pub.
./pubkey.py -c -p ~/.ssh/key -N "" -k [email protected]
Mit der Option -c wird der folgende Text zu ~ / .ssh / config hinzugefügt. Es ist die Automatisierung des Prozesses von (3).
Host sample.com
User hoge
IdentityFile ~/.ssh/key
./pubkey.py -a sample -c -p ~/.ssh/key -N "" -k [email protected]
Einfach ausgedrückt, wird es wie folgt hinzugefügt.
Host sample
hostname sample.com
User hoge
IdentityFile ~/.ssh/key
Wenn Sie dies einstellen, können Sie eine Verbindung herstellen, indem Sie einfach so drücken. (Ausgelassener Benutzername und Hostname)
ssh sample
./pubkey.py -l -a sample -c -p ~/.ssh/key -N "" -k [email protected]
(2) wird nicht ausgeführt. Geben Sie dies an, wenn Sie eine Keygen- oder Konfigurationsdatei erstellen möchten, den öffentlichen Schlüssel jedoch nicht auf der Fernbedienung ablegen müssen. Hauptsächlich zum Debuggen.
Tatsächlich bestätigte ich, dass es möglich ist, die Effizienz zu verbessern, indem es für viele Einheiten verwendet wird und von Menschen verwendet wird.
Es kann einige Zweifel geben, wie Python geschrieben wird. Es ist 2.7 oder höher, weil es argparse verwendet, Jeder der Hauptprozesse sollte funktionieren, daher würde ich auf Anfrage gerne mit 2.6 usw. arbeiten.
Wenn Sie Probleme haben oder Anfragen ziehen, posten Sie diese bitte auf github. Im Gegenteil, lassen Sie mich bitte wissen, ob es ein nützliches Tool gibt, ohne dieses zu verwenden.