Tombol SSH Windows 10

112

Saya mengalami kesulitan untuk mengaktifkan dan menjalankan kunci SSH saya setelah menginstal Windows 10. Metode normal adalah membuatnya dan memasukkannya ke akun pengguna di bawah .ssh. Folder ini tampaknya tidak tersedia di Windows 10.

Ada lagi yang mengalami ini? Saya perlu memiliki 3 kunci SSH untuk repo yang berbeda dan ini benar-benar menahan saya.

Rudenate3
sumber
2
Apakah windows 10 menyembunyikan folder titik?
Leland Barton
Tidak, itu juga yang saya pikirkan pada awalnya, tetapi telah menambahkan beberapa sejak instalasi.
Rudenate3
2
Harap pindahkan pertanyaan Anda ke Pengguna Super . Ini di luar topik di sini.
Martin Prikryl
3
@MartinPrikryl Karena banyak pengkodean di Linux, penggunaan Github, dll. Melibatkan kunci ssh dan .ssh, saya berpendapat bahwa ini sangat sesuai dengan topik untuk Stackoverflow.
haziz
2
Saya setuju dengan Martin. Pertanyaan pemrograman adalah pertanyaan tentang menulis program, bukan pertanyaan yang mungkin ditanyakan oleh programmer.
Bacon Bits

Jawaban:

130
  1. Buka baris perintah windows (ketik "cmd" di kotak pencarian dan tekan enter).
  2. Ini akan default ke folder rumah Anda, jadi Anda tidak perlu ke folder lain cd.
  3. Tipe ssh-keygen
  4. Ikuti instruksinya dan Anda siap melakukannya
  5. Kunci ssh Anda harus disimpan di direktori yang dipilih, defaultnya adalah: /c/Users/YourUserName/.ssh/id_rsa.pub

ps: Jika Anda menginstal git dengan integrasi bash (seperti saya), buka "Git Bash" alih-alih "cmd" pada langkah pertama

Digital Fun Frenzy
sumber
36
ini tampak hebat kecuali tidak berhasil. tidak ada perintahssh-keygen
roberto tomás
10
untuk beberapa alasan saya harus menjalankan ssh-keygenperintah di shell git-bash alih-alih cmd-shell.
Olian04
6
Untuk itu Anda bisa menggunakan Git Bash sheel atau git cmd, Anda tidak bisa menggunakan Windows cmd.
Pavan T
6
Pada Desember 2018, itu berhasil di luar kotak di Win 10 untuk saya
Urs
1
@Suncatcher Ya. Untuk masuk ke Github, DigitalOcean, dll. Anda memerlukan kunci publik yang ada di "id_rsa.pub" di folder yang sama. Buka dengan editor teks seperti notepad dan salin dan tempel di mana pun Anda perlu menambahkan kunci SSH Anda.
Angsa
57

2019-04-07 PEMBARUAN: Saya menguji hari ini dengan versi baru windows 10 (build 1809, "2018 October's update") dan tidak hanya klien SSH yang terbuka tidak lagi dalam versi beta, karena sudah diinstal. Jadi, yang perlu Anda lakukan adalah membuat kunci dan mengatur klien Anda untuk menggunakan SSH terbuka, bukan putty (pagent):

  1. buka command prompt (cmd)
  2. masuk ssh-keygendan tekan enter
  3. tekan enter ke semua pengaturan. sekarang kunci Anda disimpan di c: \ Users \ .ssh \ id_rsa.pub
  4. Buka klien git Anda dan setel untuk menggunakan SSH terbuka

Saya menguji Git Extensions dan Source Tree dan berfungsi dengan repo pribadi saya di GitHub. Jika Anda menggunakan versi windows sebelumnya atau lebih memilih klien grafis untuk SSH, baca di bawah ini.

04-06-2018 UDPATE:

Pada windows 10, dimulai dengan versi 1709 (win + R dan ketik winveruntuk menemukan nomor build), Microsoft merilis versi beta dari klien dan server OpenSSH. Untuk dapat membuat kunci, Anda harus menginstal server OpenSSH. Untuk melakukan ini ikuti langkah-langkah berikut:

  1. buka menu mulai
  2. Ketik "fitur opsional"
  3. pilih "Tambahkan fitur opsional"
  4. Klik "Tambahkan fitur"
  5. Instal "Buka Klien SSH"
  6. Nyalakan ulang komputernya

Sekarang Anda dapat membuka prompt dan ssh-keygenklien akan dikenali oleh windows. Saya belum menguji ini. Jika Anda tidak memiliki windows 10 atau tidak ingin menggunakan versi beta, ikuti petunjuk di bawah ini tentang cara menggunakan dempul.


ssh-keygentidak disertakan dengan windows. Berikut cara membuat kunci ssh dengan Putty:

  1. Pasang dempul
  2. Buka PuttyGen
  3. Periksa Jenis kunci dan jumlah byte yang akan digunakanParameter PuttyGen
  4. Gerakkan mouse ke atas bilah kemajuan menghasilkan kunci dengan input mouse
  5. Sekarang Anda dapat menentukan frasa sandi dan menyimpan kunci publik dan pribadi dialog kunci dibuat

Untuk kunci openssh, diperlukan beberapa langkah lagi:

  1. salin teks dari kotak teks "Kunci publik untuk menempel" dan simpan sebagai "id_rsa.pub"
  2. Untuk menyimpan kunci pribadi dalam format openssh, buka Conversions-> Export OpenSSH key (jika Anda tidak menentukan kunci sandi, Anda akan diminta untuk mengonfirmasi bahwa Anda tidak menginginkan kunci sandi) menu untuk mengonversi kunci ke format OpenSSH
  3. Simpan sebagai "id_rsa"

Sekarang kuncinya telah disimpan. Mulai pagentdan tambahkan kunci pribadi di sana (file ppk dalam format Putty) dialog kunci halaman

Ingatlah bahwa pagentharus berjalan agar otentikasi bekerja

franksands
sumber
6
ssh-keygen disertakan di windows 10, tidak yakin versi yang mana, di "Kelola Fitur Opsional"
sebbu
1
@sebbu Memang, Sekarang di windows 10 Anda dapat menginstal beta dari Open SSH Server di "Kelola Fitur Opsional" dan itu akan membuat Anda ssh-keygen bersama dengan beberapa hal lainnya. Tapi itu tidak terpasang dan tidak mudah ditemukan. Saya akan memperbarui jawaban saya.
franksands
1
Pagent @Karloron adalah gui untuk melakukan otentikasi ssh. itu biasanya ditemukan di menu mulai.
franksands
1
Anda tidak perlu menginstal Open SSH Server. Fitur Open SSH Client mencakup ssh-keygen.
Onots
1
@Onots Saya menguji dengan versi baru windows 10 (pembaruan Oktober 2018) dan tidak hanya membuka klien ssh saja sudah cukup, tetapi sudah terinstal: D Saya akan memperbarui jawaban saya
franksands
31

WINDOWS: Jika Anda menginstal git untuk windows, buka foldernya.

masukkan deskripsi gambar di sini

Lihat di direktori bin. Ada file sh.exe. Jalankan itu.

masukkan deskripsi gambar di sini

Lalu ketik:

ssh-keygen -t rsa -C "email Anda di sini"

Ikuti instruksi dan kemudian ketik:

cat ~ / .ssh / id_rsa.pub | klip

Ini menyalin kunci ke clipboard Anda. Sekarang Anda dapat menempelkan kunci publik itu ke sisi server.

Daniel
sumber
13
  1. Buka baris perintah windows (ketik "cmd" di kotak pencarian dan tekan enter).
  2. Ini akan default ke folder rumah Anda, jadi Anda tidak perlu ke folder lain cd.
  3. Tipe mkdir .ssh
aruanoc
sumber
9

Peringatan: Jika Anda menyimpan kunci Anda di bawah C: /User/username/.ssh (tempat default), pastikan untuk membuat cadangan kunci Anda di suatu tempat (misalnya pengelola kata sandi Anda).

Setelah Pembaruan Windows 10 terbaru (versi 1607), folder .ssh saya kosong. Di sinilah kunci saya selalu berada, tetapi Windows memutuskan untuk menghapusnya saat memperbarui.

Untungnya saya telah membuat cadangan kunci saya ... Tapi ... Saya yakin beberapa orang akan mengembalikan PC mereka hari ini.

Andrew
sumber
Jadi, di mana sebagian besar aplikasi mengharapkan Anda menyimpan kunci?
wcochran
3
mungkin di folder yang windows secara acak menghapus saat mengupgrade windows 10?
Andrew
8

Saya menjalankan Microsoft Windows 10 Pro, Versi 10.0.17763 Build 17763, dan saya melihat folder .ssh saya dengan mudah di C: \ Users \ jrosario \ .ssh tanpa harus mengedit izin atau apa pun (meskipun di File Explorer, saya memilih "Tampilkan file, folder, dan drive tersembunyi"): masukkan deskripsi gambar di sini

Kunci disimpan dalam file teks bernama known_hosts, yang kira-kira terlihat seperti ini: masukkan deskripsi gambar di sini

ShieldOfSalvation
sumber
5

Saya menemukan pengecualian penting bahwa di Windows 10, menggunakan rute yang dijelaskan hanya menulis file ke folder jika nama file tidak ditentukan di generator ssh-keygen.

pemberian nama kunci khusus menyebabkan file yang berisi kunci publik dan pribadi RSA tidak ditulis ke folder.

  • Buka baris perintah windows
  • Tipe ssh-keygen
  • Biarkan nama file kosong, cukup tekan kembali,
  • Setel frasa sandi Anda
  • Buat file kunci Anda. Mereka sekarang akan ada. dan disimpan dic:/Users/YourUserName/.ssh/

( menggunakan Baris Perintah Admin dan Windows 10 Pro )

Martin
sumber
@ Otak negatif. Ini TIDAK akan menimpa kunci Anda, jika kunci saat ini ada di tujuan, maka di Jendela baris Perintah akan menanyakan apakah Anda ingin menimpa kunci ini. Kunci lain dalam folder yang sama tidak terpengaruh . Saya tahu setelah membaca komentar Anda, saya melakukan uji coba dan ternyata memang demikian.
Martin
Pernahkah Anda mencari tahu mengapa?
Damainman
@Damainman sayangnya saya belum memiliki kesempatan untuk mengeksplorasi ini lebih lanjut, jadi tidak:-/
Martin
1
Terima kasih @Martin Anda menyelamatkan hari saya. Saya dapat membuat file dengan nama berbeda. Kita harus menyediakan pemisah jalur dengan cara unix! Yang berikut berhasil untuk saya. ssh-keygen -t ed25519 -C "My Github Key" Masukkan file untuk menyimpan kunci (C: \ Users \ bilix / .ssh / id_ed25519): c: \ users \ bilix \ .ssh \ id_ed25519_github
Prakash P
@PrakashP senang membantu!
Martin
4

Buat kunci pribadi / publik:

  1. Terminal up terbuka ( git bash, PowerShell, cmd.exedll)
  2. Ketik ssh-keygen
  3. Tekan enter untuk penyimpanan file default ( ~/.ssh/id_rsa)
  4. Tekan enter untuk frasa sandi default (tanpa frasa sandi)
  5. Tekan enter lagi
  6. Lihat hasilnya dan pastikan bahwa RSAis 3072atau di atas

Anda sekarang telah membuat pasangan kunci pribadi / publik.

Untuk GIT, kunci harus memiliki kekuatan 2048, harus ditempatkan di .sshdirektori pengguna dan dipanggil id_rsadan id_rsa.pub. Saat menempelkan kunci di mana saja, pastikan untuk menggunakan program yang tidak menambahkan baris baru seperti VIM.

K - Toksisitas pada SO meningkat.
sumber
2

Saya akhirnya berhasil dengan menjalankan membuka baris perintah dengan "Jalankan Administrator" meskipun saya sudah menjadi admin dan dapat membuat direktori secara manual

adelaidedave.dll
sumber
1

Jika Anda memiliki Windows 10 dengan klien OpenSSH, Anda mungkin dapat membuat kunci, tetapi Anda akan kesulitan menyalinnya ke kotak Linux target karena perintah ssh-copy-id bukan bagian dari perangkat klien.

Karena memiliki masalah ini, saya menulis fungsi PowerShell kecil untuk mengatasi hal ini, yang Anda tambahkan ke profil Anda.

function ssh-copy-id([string]$userAtMachine, [string]$port = 22) {   
    # Get the generated public key
    $key = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    # Verify that it exists
    if (!(Test-Path "$key")) {
        # Alert user
        Write-Error "ERROR: '$key' does not exist!"            
    }
    else {  
        # Copy the public key across
        & cat "$key" | ssh $userAtMachine -p $port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

Anda bisa mendapatkan intinya di sini

Saya punya tulisan singkat tentang itu di sini

Rad
sumber
0

Juga, Anda dapat mencoba (untuk Windows 10 Pro) Jalankan Powershell sebagai administrator dan ketik ssh-keygen -t rsa -b 4096 -C "[email protected]"

chavy
sumber