Kunci SSH - Masih meminta kata sandi dan frasa sandi

495

Saya agak 'memasang' dengan Github selalu meminta nama pengguna dan kata sandi saya ketika saya mengkloning repositori. Saya ingin melewati langkah ini karena ini mengganggu dalam alur kerja saya.

Saya mencoba mengatur kunci SSH (yang berhasil saya lakukan) menggunakan panduan ini. https://help.github.com/articles/generating-ssh-keys dan saya berhasil.

Masalah saya adalah bahwa saya masih dimintai kata sandi dan passphrase github ketika mengkloning repositori (menggunakan SSH). Pemahaman saya adalah bahwa setelah saya mengatur kunci SSH ini, saya tidak lagi harus melakukan itu.

Saya sedikit tidak yakin harus bertanya apa, jadi saya hanya akan menyatakan tujuan saya.

Saya ingin dapat mengkloning repositori tanpa harus memasukkan informasi Github saya sepanjang waktu .

Apa yang saya lewatkan dengan kunci SSH saya? Jika ada yang bisa memberikan beberapa panduan atau sumber daya saya akan sangat menghargainya, karena saya selalu merasa sedikit bingung ketika datang ke otentikasi SSH di GitHub.

Dari pengetahuan saya, ini adalah perintah yang menguji apakah semuanya berfungsi dengan baik, berikut adalah output dari konsol saya:

~ $ ssh -T [email protected]
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

Ketika saya memasukkan kata sandi saya, haruskah itu gagal dulu? Lalu, ketika saya memasukkan frasa sandi saya, kata sandi itu lewat.

Halo Dunia
sumber
1
Di OS mana Anda? Linux Desktop modern akan mengusulkan untuk menyimpan kata sandi Anda di manajer keyring. Sama di Mac OS X. Di Windows Anda dapat menggunakan pageant, yang merupakan bagian dari putty. Dalam semua ini tujuannya adalah sama: Anda memasukkan frasa sandi hanya sekali setelah Anda memulai PC Anda, agen manajer kunci akan meneruskannya ke ssh dalam penggunaan berikutnya sampai Anda reboot.
janos
2
Saya sedikit terlambat ke pesta di sini, tetapi pada tab / tombol klon kecil di github ada tautan yang mengatakan "Gunakan SSH". Anda ingin melakukan itu. Ini mengubah tautan klon Anda menjadi sesuatu seperti "git @ github: username / project.git". Jika Anda menambahkan kunci SSH ke github dan menjalankannya di ssh-agent secara lokal, maka Anda harus bisa mendorong tanpa memasukkan nama pengguna atau kata sandi.
Logan Kitchen

Jawaban:

201

Jika Anda bekerja dengan HTTPsurl, itu akan selalu menanyakan nama pengguna / kata sandi Anda.

Jika Anda menggunakan dengan benar SSHketika kloning / pengaturan jarak jauh. Kemudian pastikan Anda memiliki ssh-agent untuk mengingat kata sandi Anda. Dengan begitu, Anda hanya akan memasukkan frasa sandi satu kali dengan sesi terminal.

Jika masih terlalu mengganggu, maka cukup atur kunci ssh tanpa frasa sandi.

Simon Boudrias
sumber
2
terima kasih atas tanggapannya. Saya selalu menggunakan HTTPs saja. Saya mencoba mencapai otentikasi SSH dan berpikir saya mengaturnya. Apakah ssh-agent sesuatu di luar git yang harus saya instal? Terima kasih
HelloWorld
1
@ R11G Anda tidak bisa, jika tidak, kata sandi tidak akan aman ... Cukup buat ulang yang baru.
Simon Boudrias
50
Saya hanya ingin mencatat bahwa frasa sandi digunakan untuk mengenkripsi kunci pribadi Anda, jadi jika Anda tidak menggunakan kata sandi, maka kunci pribadi Anda tidak akan dienkripsi pada mesin Anda. Ini seperti meninggalkan kata sandi dalam file teks yang diletakkan di komputer Anda.
2
Lucu, repo HTTPS saya tidak pernah meminta kata sandi dan repo SSH saya selalu melakukannya.
Adam
33
Lihat dokumen github ini untuk mengonversi URL jarak jauh dari https ke ssh. Untuk memeriksa apakah URL jarak jauh adalah ssh atau https, gunakan git remote -v. Untuk beralih dari https ke ssh:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Manavalan Gajapathy
825

Tambahkan Identitas tanpa Gantungan Kunci

Mungkin ada saat di mana Anda tidak ingin frasa sandi disimpan dalam gantungan kunci, tetapi tidak ingin harus memasukkan frasa sandi berulang kali.

Anda dapat melakukannya seperti ini:

ssh-add ~/.ssh/id_rsa 

Ini akan meminta Anda untuk passphrase, masukkan dan tidak akan meminta lagi sampai Anda me-restart.

Tambahkan Identitas Menggunakan Keychain

Seperti @dennis tunjukkan dalam komentar, untuk tetap menggunakan frasa sandi melalui restart dengan menyimpannya di gantungan kunci Anda, Anda dapat menggunakan -Kopsi ( -kuntuk Ubuntu) saat menambahkan identitas seperti ini:

ssh-add -K ~/.ssh/id_rsa

Sekali lagi, ini akan meminta Anda untuk frasa sandi, masukkan kata sandinya dan kali ini tidak akan pernah lagi meminta identitas ini.

Komu
sumber
178
Perhatikan bahwa ini tidak akan mempertahankan identitas pada restart. Anda dapat menggunakan -Kopsi untuk menyimpan frasa sandi di gantungan kunci Anda saat menambahkannya, misalnyassh-add -K ~/.ssh/id_rsa
Dennis
29
huruf kecil -kuntuk saya ... (Linux Mint / Ubuntu 14.04 base) tapi ya! akhirnya diurutkan ini ...
Louis Maddox
8
cukup jalankan perintah "ssh-add" dan masukkan kata sandi sekali, baris perintah tidak akan meminta Anda untuk kata sandi lagi.
AVINASH SHRIMALI
14
Anda tidak membutuhkan argumen apa pun; hanya menjalankan ssh-addsecara otomatis akan menambah ~/.ssh/id_rsa(di antara file lain). Dan tidak ada alasan untuk mengirim output ke /dev/null; jauh lebih baik untuk melihat laporan tentang apa yang dilakukannya.
Ted Hopp
6
Adakah alasan mengapa saya mendapatkan "Tidak dapat membuka koneksi ke agen otentikasi Anda."?
dokaspar
252

Pada Mac OSX Anda dapat menambahkan kunci pribadi ke gantungan kunci menggunakan perintah:

ssh-add -K /path/to/private_key

Jika kunci pribadi Anda disimpan di ~ / .ssh dan diberi nama id_rsa:

ssh-add -K ~/.ssh/id_rsa

Anda kemudian akan diminta kata sandi, yang akan disimpan di gantungan kunci Anda.

Edit - Menangani restart

Agar tidak harus mengisi kata sandi Anda bahkan setelah restart tambahkan berikut ini ke file konfigurasi ssh Anda (biasanya terletak di ~ / .ssh / config)

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa
Groot
sumber
7
Dalam kasus saya, masih meminta kata sandi setelah restart (macOS Sierrra 10.12.2). Ada ide tentang cara mengatasi ini?
inigo333
9
Nevermind, saya baru saja menemukan masalahnya. Ini adalah bug (fitur?) Dari Mac OS X 10.12 di mana ssh-agent tidak secara otomatis memuat frasa sandi pada gantungan kunci selama startup. github.com/lionheart/openradar-mirror/issues/15361
inigo333
2
@ inigo333 menarik. Saya baru saja memperbarui dan memperhatikan ini sendiri!
Groot
1
@Groot, BTW, menambahkan "Host * UseKeychain yes" ke "~ / .ssh / config", seperti yang disarankan dalam jawaban lain, memperbaiki masalah.
inigo333
1
Ini harus menjadi jawaban yang diterima. Khususnya file konfigurasi di~/.ssh
Xavi
186

Saya mencoba semua jawaban di sini dan tidak ada jawaban yang berhasil ! Kata sandi saya tidak akan bertahan di antara sesi / restart Mac saya.

Apa yang saya temukan dari membaca OpenRadar ini dan diskusi Twitter ini adalah bahwa Apple sengaja mengubah perilaku ssh-agent di macOS 10.12 Sierra untuk tidak lagi secara otomatis memuat kunci SSH sebelumnya. Untuk mempertahankan perilaku yang sama dengan El Cap, saya melakukan hal berikut:

  1. ssh-add -K ~/.ssh/id_rsa
    Catatan: ubah jalur ke tempat kunci id_rsa Anda berada.
  2. ssh-add -A
  3. Buat (atau edit jika ada) ~/.ssh/configfile berikut :

    Host *
      UseKeychain yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_rsa
    

Dan sekarang kata sandi saya diingat antara restart Mac saya!

ChrisJF
sumber
2
Ini mungkin sesuatu yang berguna untuk ditambahkan ke halaman dokumentasi github atau osx . Memiliki waktu tersulit mencari tahu mengapa Mac saya menjalankan 10.11 dan 10.12 saya yang lain berjalan di mana berperilaku berbeda.
Grr
5
Terjadi pada saya setelah upgrade OSX, terima kasih (saya pikir ssh-add -Atidak diperlukan jika Anda hanya memiliki satu kunci ~/.ssh/id_rsa)
Dorian
1
Ini adalah jawaban yang sangat berguna. Terima kasih, kamu membuat hariku.
Jan Nash
2
Pada Oktober 2017, jawaban ini persis apa yang Anda cari jika Anda menggunakan macOS 10.12 atau lebih tinggi.
brogrammer
3
Dan ini sekarang ada di dokumen github: help.github.com/articles/…
Todd Price
35

Anda dapat menghapus frasa sandi untuk kunci tersebut

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

atau kamu bisa lari

$ ssh-keygen -p

Anda mendapatkan prompt untuk keyfile. Secara default ~/.ssh/id_rsabegitu tekan enter

Anda akan diminta memasukkan frasa sandi saat ini untuk memasukkannya.

Kemudian akan ada prompt untuk frasa sandi baru, tekan enter

sudo bangbang
sumber
Ini harus lebih tinggi daripada banyak jawaban yang hampir identik untuk menambahkan frasa sandi ke gantungan kunci. Saya harus memberikan kunci publik saya kepada administrator, dan memasukkan frasa sandi yang menjadi menjengkelkan untuk mengetik setiap waktu. Ini adalah solusi yang bersih ketika Anda tidak memiliki banyak kontrol atas mesin Anda ( -K, -k, -Atidak bekerja untuk saya).
gwg
1
Ini adalah satu - satunya hal yang bekerja untuk saya di restart, semua perintah ssh-add -K, -k, dll. Tidak melakukan apa pun untuk saya.
Amalgovinus
28

Jalankan saja perintah berikut:

ssh-add -K

Ia tidak akan pernah meminta Anda memasukkan kata sandi lagi.

pengguna3640130
sumber
3
Ini bekerja dengan baik, tapi saya sedikit khawatir menjalankan perintah acak. Namun, jika Anda memeriksa dokumen ssh-addhanya "menambahkan identitas kunci pribadi ke agen otentikasi", dan -Kopsi membuatnya jadi "Ketika menambahkan identitas, setiap frasa sandi juga akan disimpan dalam gantungan kunci pengguna."
machineghost
8
Sebenarnya, itu hanya memperbaikinya sampai saya me-restart :(
machineghost
5
di bash shell untuk Windows, flag "-k" harus lebih kecil. Just FYI
Fergus
27

Pastikan Anda menggunakan ssh untuk repositori Anda juga

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin [email protected]:eMahtab/jenkins-cje-2017.git (fetch) origin [email protected]:eMahtab/jenkins-cje-2017.git (push)

masukkan deskripsi gambar di sini

Jangan gunakan https, jika remote Anda menggunakan https maka ia akan terus meminta kata sandi, bahkan jika Anda telah menambahkan kunci publik ke Github dan menambahkan kunci pribadi ke ssh-agent. Di bawah ini akan selalu meminta kata sandi

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)

Mahtab Alam
sumber
Ya, membedakan antara dua jenis URL jarak jauh sangat membantu bagi saya. Ini membantu saya dalam hal git pulldan git push. Saya mengalihkan url saya dari tipe HTTPS ke tipe SSH, dan itu berhasil - git pullberhenti meminta kata sandi.
Michael R
1
Switching dapat dilakukan dengan perintah ini:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
guido
17

Saya harus mengeksekusi:

eval `ssh-agent -s`
ssh-add

Catatan : Anda harus melakukan ini lagi setelah setiap restart. Jika Anda ingin menghindarinya, masukkan di file " .bashrc " Anda yang ada di C:\Users\<<USERNAME>>\.bashrcwindows. Mungkin disembunyikan, jadi pastikan Anda dapat melihat file tersembunyi.

Solusi ditemukan di sini .

Hitam
sumber
15

Jika Anda menggunakan windows, ini bekerja untuk saya:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

Itu akan meminta frasa sandi di perintah kedua, dan hanya itu.

Marina
sumber
1
Saat Anda keluar dan masuk kembali, Anda harus memasukkan kembali kata sandi setiap kali.
trainoasis
12

TL; DR
Anda harus menggunakan agen ssh. Jadi, buka terminal & coba

ssh-add

sebelum mendorong ke git. Masukkan frasa sandi Anda saat diminta.

Lihat jawaban StackExchange asli di sini

Junaid
sumber
6

Baru-baru ini saya memutakhirkan ke macOS Mojave, dan menginstal beberapa alat melalui homebrew, yang sepertinya menukar versi Apple ssh-adddengan yang berbeda. Versi default saya dari ssh-add tidak memiliki -Kopsi. Ini menyebabkan kesalahan berikut:

# ssh-add: illegal option -- K

Anda dapat melihat versi mana yang ssh-addAnda miliki dengan menjalankan which ssh-add.

(Tambang disimpan di /usr/local/bin/ssh-add)

Untuk memperbaikinya, saya harus mengarahkan kunci ke versi Apple :

/usr/bin/ssh-add -K ~/.ssh/id_rsa

Git / GitHub bekerja dengan sempurna sesudahnya. Untuk informasi lebih lanjut, lihat: Kesalahan: ssh-add: opsi ilegal - K

tentang Harun
sumber
Punya masalah yang sama pada iMac saya dengan High Sierra 10.13.6 - ini berhasil bagi saya. Terima kasih!
emccracken
Milik saya telah bekerja dengan baik & secara acak mulai meminta kata sandi lagi - mungkin setelah pembaruan baru-baru ini. Ini memperbaikinya! Terima kasih
mc01
5

Untuk Mac OSX Sierra, saya menemukan bahwa perbaikan yang disarankan dalam masalah github untuk Open Radar memperbaiki masalah saya. Sepertinya Sierra mengubah perilaku default (saya mulai mengalami masalah ini setelah memutakhirkan).

Yang ini saya temukan sangat berguna: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061

ssh-add -A 

Ini mengakibatkan identitas saya ditambahkan ke agen, setelah saya berlari

ssh-add -K {/path/to/key}

Untuk meringkas, dalam OSX.12:

ssh-add -K {/path/to/key}
ssh-add -A 

harus menghasilkan:

Identity added: {/path/to/file} ({/path/to/file})

EDIT: Saya perhatikan waktu berikutnya saya melakukan reboot penuh (alias agen berhenti dan restart) ini tidak lagi berfungsi. Solusi yang lebih lengkap adalah apa yang @ChrisJF sebutkan di atas: membuat ~/.ssh/configfile. Inilah output milik saya:

$ cat ~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

Anda dapat menambahkan IdentityFileentri sebanyak yang Anda butuhkan, tetapi ini adalah pengaturan default. Ini adalah jawaban "trending" pada tautan openradar di atas, ATM, juga.

zedd45
sumber
Yang diedit memecahkan masalah saya. MacOS Mojave 10.14.3
Jose
4

Bekerja di LinuxMint / Ubuntu

Lakukan langkah-langkah berikut

Langkah 1:

File goto => /.ssh/config

Simpan baris di bawah ini ke dalam file

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/apple/myssh-privatekey
    AddKeysToAgent yes

Jangan lupa untuk menambahkan baris ini, AddKeysToAgent ya

Langkah 2:

Buka terminal dan tambahkan keyset ke ssh-add

$ ssh-add -k /home/apple/myssh-privatekey

berikan frasa sandi.

DhineshYa
sumber
3

Saya sudah menetapkan frasa sandi, tetapi karena alasan tertentu tidak akan mengenalinya lagi. Jadi saya hanya menambahkan file identitas ke gantungan kunci saya lagi menggunakan ssh-add -Kdan berhenti meminta kata sandi saya.

André Herculano
sumber
ini hanya memuat kunci dan bukan sertifikat
numediaweb
3

Inilah yang bekerja untuk saya:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"
daniel sp
sumber
2

Masalah tampaknya karena Anda kloning dari HTTPS dan bukan SSH. Saya mencoba semua solusi lain di sini tetapi masih mengalami masalah. Ini berhasil untukku.

Menggunakan osxkeychain helperseperti ini:

  1. Cari tahu apakah Anda sudah menginstalnya.

    git credential-osxkeychain

  2. Jika tidak diinstal, Anda akan diminta untuk mengunduhnya sebagai bagian dari Alat Baris Perintah Xcode.

  3. Jika sudah diinstal, beri tahu Git untuk menggunakan osxkeychain helpermenggunakan credential.helperkonfigurasi global :

    git config --global credential.helper osxkeychain

Lain kali Anda mengkloning url HTTPS, Anda akan diminta nama pengguna / kata sandi, dan untuk memberikan akses ke gantungan kunci OSX. Setelah Anda melakukan ini pertama kali, itu harus disimpan di gantungan kunci Anda dan Anda tidak perlu mengetiknya lagi.

Bryan Perez
sumber
2

Jawaban ini terutama untuk pengguna windows dan juga sama-sama relevan jika Anda mengalami masalah kloning dengan tfs, github atau gitlab pada OS lain.

Mode otentikasi default saat menggunakan SSH adalah kunci pribadi. Kapan pun itu gagal karena suatu alasan, ssh-agent kembali ke otentikasi berdasarkan nama pengguna dan kata sandi.

Ada beberapa alasan mengapa otentikasi berbasis kunci default mungkin gagal. Berikut ini adalah kasus yang paling umum:

a) Agen ssh tidak dapat menemukan file kunci privat default yang id_rsa , dan tidak ada jalur kunci lain yang ditentukan secara eksplisit.

b) Kunci publik yang disimpan di server salah.

c) Jalur yang Anda coba tiru salah.

Dalam kasus apa pun, untuk memecahkan masalah, pertama-tama jalankan perintah git clone dengan verbose logging dengan perintah:

GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo

Anda dapat melewati setiap langkah dalam log untuk mendapatkan intuisi tentang apa masalahnya.


Pemecahan masalah jika terjadi (a)

  • Pastikan Anda memiliki nama kunci default id_rsa di direktori .ssh. Anda mungkin telah menetapkan beberapa keyname yang berbeda saat membuat kunci dengan perintah ssh-keygen atau mungkin tidak ada kunci sama sekali).
  • Jika Anda ingin menentukan kunci lain untuk otentikasi, gunakan perintah berikut:

    ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
    

Pemecahan masalah jika terjadi (b)

  • Pastikan tidak ada spasi putih tambahan saat menyimpan kunci publik di server.

Pemecahan masalah jika terjadi (c)

  • Pastikan Anda tidak mencoba untuk mengkloning dengan versi https dari jalur repositori.
kekacauan
sumber
1

Jika Anda menggunakan ssh url untuk git, saat diminta kata sandi untuk ssh, masukkan nama pengguna sebagai " git " dan kata sandi sebagai kata sandi login sistem Anda

Vinayak Deshpande
sumber
Mengubah jenis URL jarak jauh repositori dari HTTPSuntuk SSHmenyelesaikan masalah saya. Terima kasih @MichaelR, artikel Anda sangat membantu, meskipun saya belum membaca apa pun darinya: D
Geradlus_RU
1

Saya ingin menambahkan jawaban bagi mereka yang mungkin masih perlu memasukkan kata sandi karena mereka telah menetapkan IdentitiesOnly sebagai ya. Ini dapat disebabkan oleh beberapa kunci dan file identitas, menjadi kunci untuk git atau server.

Setelah saya membuat kunci dan menyalinnya ke server:

ssh-keygen
ssh-copy-id -i ~/.ssh/12gpu_server.pub [email protected]

Saya menemukan itu tidak berhasil.

Lalu saya pergi memeriksa ~/.ssh/configfile, saya melihat ini di bagian bawah:

Host *
IdentitiesOnly yes

Lalu saya tambahkan ini di atas:

Host 12gpu
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/12gpu_server

Saya bisa masuk dengan memasukkan ssh 12gpu.

Kemudian Anda dapat menambahkan beberapa kunci ssh menggunakan nama favorit Anda, dan Anda hanya perlu menambahkan pengaturan seperti empat baris di atas ke file konfigurasi.

Host adalah nama yang ingin Anda masukkan ketika Anda terhubung ke server nanti; yang Hostname adalah ip server atau domain seperti github.com; Pengguna adalah nama pengguna yang Anda masuki di server seperti nama pengguna atau git untuk github atau gitlab; dan IdentityFile adalah file tempat Anda menyimpan kunci yang Anda buat.

Lerner Zhang
sumber
1

Secara umum, berikut adalah langkah-langkah untuk memungkinkan Anda membuat koneksi jarak jauh ke server Anda menggunakan ssh tanpa kata sandi:

  • Buat sepasang kunci privat dan publik rsa

    $ ssh-keygen -t rsa -b 4096 -C "your comments"
    
  • Salin kunci publik Anda dan login ke server jauh Anda

  • Tambahkan kunci publik Anda ke .ssh /otorized_keys

  • Jika Anda memiliki beberapa kunci ssh di komputer, Anda dapat menambahkan kunci menggunakan ssh-add

    $ ssh-add /path/to/private/key

  • Kemudian coba ssh ke server Anda

    $ ssh username@your_ip_address

Sumber: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html

Anang Satria
sumber
0

Gunakan sshurl jarak jauh yang disediakan oleh Github tidak https.

Koder yang Hilang
sumber
OP jelas mengatakan dia menggunakan SSH, bukan HTTPS.
lambat
0

Jika Anda menggunakan Windows dan GIT tanpa alat pihak ketiga dan kunci Anda tidak diamankan dengan kata sandi / frasa sandi gunakan ini:

  1. HOME Variabel Lingkungan harus disetel ke profil pengguna Anda (mis. C: \ Users \ Laptop)
  2. Buka folder C: \ Users \ Laptop \ .ssh \ dan edit file "config" (atau buat file!) Contoh: C: \ Users \ Laptop.ssh ​​\ config (catatan: tidak ada. Di akhir!)
  3. Tambahkan host git-server Anda ke file "config" seperti:

    #Example host entry
    Host myhostname.com
        HostName myhostname.com
        User git
        IdentityFile c:/users/laptop/.ssh/id_rsa.pub
        PasswordAuthentication no
        Port 422
    
  4. Simpan file dan klon repositori seperti ini:

    git clone ssh: //myhostname.com/git-server/repos/picalc.git

Anda dapat menggunakan parameter konfigurasi tambahan untuk entri host file "config". Ini dapat ditemukan di folder instalasi git lokal Anda, misalnya " C: \ Program Files \ Git \ etc \ ssh \ ssh_config ". Kutipan:

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
Fabian Stern
sumber
0

Masalah yang sama bagi saya dan solusinya adalah:

Lihat dokumen github ini untuk mengonversi URL jarak jauh dari https ke ssh. Untuk memeriksa apakah URL remote ssh atau https, gunakan git remote -v. Untuk beralih dari https ke ssh: git set-url remote asal [email protected]: USERNAME / REPOSITORY.git @jeeYem

Bruno Leite
sumber
0

Mobaxterme memiliki antarmuka UI untuk itu

setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]

Amir Heshmati
sumber
0

Kunci SSH - Masih meminta kata sandi dan frasa sandi

Jika di Windows dan menggunakan Putty sebagai generator kunci SSH , solusi cepat & mudah ini ternyata menjadi satu-satunya solusi yang berfungsi bagi saya menggunakan baris perintah windows biasa:

  1. Instalasi Putty Anda harus datang dengan beberapa executable, antara lain, pageant.exedanplink.exe
  2. Saat membuat kunci SSH dengan PuttyGen, kunci disimpan dengan .ppkekstensi
  3. Jalankan "full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"( harus dikutip). Ini akan menjalankan pageantlayanan dan mendaftarkan kunci Anda (setelah memasukkan kata sandi).
  4. Setel variabel lingkungan GIT_SSH=full\path\to\plink.exe( tidak boleh dikutip). Ini akan mengarahkan perintah git ssh-communication-related ke plinkyang akan menggunakan pageantlayanan untuk otentikasi tanpa meminta kata sandi lagi.

Selesai!

Catatan1: Dokumentasi ini memperingatkan tentang beberapa keanehan ketika bekerja dengan GIT_SHHpengaturan variabel lingkungan. Aku bisa push, pull, fetchdengan sejumlah parameter tambahan untuk perintah dan semuanya bekerja dengan baik untuk saya (tanpa perlu menulis skrip tambahan seperti yang disarankan di dalamnya).

Note2: Jalur ke PuTTYinstalasi biasanya PATHjadi bisa dihilangkan. Lagi pula, saya lebih suka menentukan path lengkap.

Otomatisasi:

File batch berikut dapat dijalankan sebelum menggunakan git dari baris perintah. Ini menggambarkan penggunaan pengaturan:

git-init.bat
   @ECHO OFF
   :: Use start since the call is blocking
   START "%ProgramFiles%\PuTTY\pageant.exe" "%HOMEDRIVE%%HOMEPATH%\.ssh\id_ed00000.ppk"
   SET GIT_SSH=%ProgramFiles%\PuTTY\plink.exe

Bagaimanapun, saya memiliki GIT_SSHset variabel SystemPropertiesAdvanced.exe > Environment variablesdan pageant.exeditambahkan sebagai Runkunci registri (*).

(*) Langkah-langkah untuk menambahkan Runkunci registri>

  1. Lari regedit.exe
  2. Navigasi ke HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
  3. Do (menu) Edit > New > String Value
  4. Masukkan nama yang arbitrer (tapi unik)
  5. Lakukan (menu) Edit > Modify...(atau klik dua kali)
  6. Masukkan path yang dilampirkan dengan tanda kutip ke pageant.exedan public key, misalnya, "C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"(perhatikan bahwa %ProgramFiles%variabel dll tidak bekerja di sini kecuali memilih Expandable string valuedi tempat String valuedalam langkah 3.).
PavDub
sumber
-1

Saya pikir jawaban bangbang @sudo harus diterima.

Saat membuat kunci ssh, Anda cukup menekan "Enter" untuk melewatkan mengetik kata sandi Anda ketika meminta Anda untuk mengkonfigurasi kata sandi.

Itu berarti Anda TIDAK PERLU kata sandi saat menggunakan kunci ssh, jadi ingatlah ketika membuat kunci ssh, JANGAN masukkan kata sandi, cukup tekan 'Enter' untuk melewatinya.

andrava
sumber
1
Ini saran yang sangat buruk. Lihat @ user456814's komentar
Sos