Π Π°Π±ΠΎΡΠ° ΠΏΠΎ SSH
ΠΠ»ΡΡΠΈ SSH Π² Git ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Secure Shell (SSH). ΠΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠΈΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ SSH ΠΊΠ»ΡΡΠ΅ΠΉ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ SSH ΠΊΠ»ΡΡΠ΅ΠΉ ΠΏΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ RSA ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ssh-keygen -t rsa -C "your_email@example.com"Π³Π΄Π΅:
-
ssh-keygen- ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ SSH ΠΊΠ»ΡΡΠ΅ΠΉ; -
-t rsa- ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΈΠΏ ΠΊΠ»ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ. RSA - ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ ΠΊΠ»ΡΡΠ°; -
-C your_email@example.com- ΡΡΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΊΠ»ΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π·Π΄Π΅ΡΡ ΡΠ²ΠΎΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.
ΠΠ°Π»Π΅Π΅, Π΅ΡΠ»ΠΈ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΌΠ΅Π½ΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, ΡΡΠΈ ΡΠ°Π·Π° Π½Π°ΠΆΠΌΠΈΡΠ΅ Enter:
Enter file in which to save the key (C:\Users\<your_username>/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase):ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡ Π΅ΠΌΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
- Π΄Π»Ρ ΡΡ Π΅ΠΌΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° ΡΠ»Π»ΠΈΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΡΠΈΠ²ΠΎΠΉ Curve25519 ΠΈ Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΠΈ SHA-512:
ssh-keygen -t ed25519- Π΄Π»Ρ ΡΡ Π΅ΠΌ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ ECDSA ΠΈ Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΠΈ SHA-2
ssh-keygen -t ecdsa -b 256 ssh-keygen -t ecdsa -b 384 ssh-keygen -t ecdsa -b 521ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ SSH ΠΊΠ»ΡΡΠ° Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ
ΠΠ»Ρ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΡΠΊΡΡΡΡΠΉ SSH ΠΊΠ»ΡΡ (ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ .pub, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ id_rsa.pub):
Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°.
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ, ΠΎΡΠΊΡΡΠ² ΡΠ°ΠΉΠ» Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
cat ~/.ssh/id_rsa.pubΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° GitVerse.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΈΠΊΠΎΠ½ΠΊΡ ΠΏΡΠΎΡΠΈΠ»Ρ, Π·Π°ΡΠ΅ΠΌ ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ.
ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΠ»ΡΡΠΈ SSH/GPG Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΠΎΠ±Π°Π²ΠΈΡΡ SSH ΠΊΠ»ΡΡ.
ΠΠ° ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΉΡΡ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠ»ΡΡΠ° ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ (ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ) ΠΊΠ»ΡΡΠ°.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΠΎΠ±Π°Π²ΠΈΡΡ.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ SSH ΠΊΠ»ΡΡΠ΅ΠΉ
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΆΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π²Π²Π΅Π΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ git:
ssh-agent -sΠΡΠΈΠΌΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ:
SSH_AUTH_SOCK=/tmp/ssh-40ZRlMnJMhEY/agent.1794; export SSH_AUTH_SOCK;
SSH_AGENT_PID=1795; export SSH_AGENT_PID;
echo Agent pid 1795;Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ SSH-Π°Π³Π΅Π½Ρ Ρ PID (ΠΏΡΠΎΡΠ΅ΡΡΠ½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ) 1795 ΠΈ ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠΊΠ΅Ρ /tmp/ssh-40ZRlMnJMhEY/agent.1794 Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ.
Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ:
- Π² ΠΠ‘ Windows ΠΊΠ»ΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ
C:\Users\<your_username>\.ssh; - Π² ΠΠ‘ Linux -
/home/<your_username>/.ssh(Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΡΡΡΠΎΠΉ).
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΠ‘ Linux Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ssh ΠΊΠ»ΡΡΠ°ΠΌΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
cd ~/.ssh
xdg-open .ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΠΎ SSH
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΠΎ SSH Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git remote set-url origin ssh://git@gitverse.ru:2222/<username>/<repository_name>ΠΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠΎ HTTPS ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ SSH. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ URL Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ SSH Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git remote set-url ΡΠ»Π°Π³ΠΎΠΌ --add. Git ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ URL Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
ΠΏΠΎ Π²Π°ΡΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ:
git remote set-url --add origin ssh://git@gitverse.ru:2222/<username>/<repository_name>