Saya punya pratinjau dev windows 8 (tidak yakin apakah itu relevan, tapi saya tidak pernah memiliki kerumitan ini pada w7) mesin dan saya mencoba untuk mengkloning git repo dari github.
Masalahnya adalah bahwa ~ / .ssh / id_rsa saya memiliki 440 izin dan harus 400. Saya sudah mencoba chmodding itu tetapi setiap perubahan pada izin pengguna tercermin dalam izin grup (yaitu chmod 600 menghasilkan 660, dll ). Ini tampaknya konstan di seluruh file di seluruh sistem file.
Saya sudah mencoba mengacaukan ACL tetapi tidak berhasil (kontrol penuh pada pengguna saya dan menolak semua orang menghasilkan 000)
inilah beberapa keluaran untuk membantu:
$ git clone [removed]
Cloning into [removed]...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0660 for '/home/john/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/john/.ssh/id_rsa
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
$ ll ~/.ssh
total 6
-r--r----- 1 john None 1675 Nov 30 19:15 id_rsa
-rw-rw---- 1 john None 411 Nov 30 19:15 id_rsa.pub
-rw-rw-r-- 1 john None 407 Nov 30 18:43 known_hosts
$ chmod -v 400 ~/.ssh/id_rsa
mode of `/home/john/.ssh/id_rsa' changed from 0440 (r--r-----) to 0400 (r--------)
$ ll ~/.ssh
total 6
-r--r----- 1 john None 1675 Nov 30 19:15 id_rsa
-rw-rw---- 1 john None 411 Nov 30 19:15 id_rsa.pub
-rw-rw-r-- 1 john None 407 Nov 30 18:43 known_hosts
$ set | grep CYGWIN
CYGWIN='sbmntsec ntsec server ntea'
Saya menyadari bahwa saya dapat menggunakan msysgit atau sesuatu, tetapi saya lebih suka untuk dapat melakukan semuanya dari satu terminal
Sunting: Msysgit juga tidak berfungsi karena alasan yang sama
sumber
ls -l
menunjukkan izin sebagai000
(----------
) - tetapi apakah Anda masih dapat membaca file, dan melakukanssh
dangit clone
mengeluh tentang itu? Saya berspekulasi bahwassh
tidak akan mengeluh tentang izin yang tampaknya terlalu ketat. Pandangan cepat pada kode sumber cenderung mengkonfirmasi ini, tetapi saya belum mengujinya.Jawaban:
Tidak Perlu untuk grup kosong.
Selama Instalasi cygwin, semua file tidak termasuk grup. Anda dapat memeriksa ini dengan melakukan
ls -al
. Anda akan melihat bahwa tidak ada grup ("tidak ada") di file. Ubah saja menjadi Pengguna:Setelah ini, Anda dapat melakukan
chmod
apa pun yang Anda suka.sumber
chgrp Users *
hanya akan mengubah semua file dan folder di$PWD
. Untuk mengubah semua subfolder / file juga sebagai $ PWD, gunakan opsi -R:chgrp -R users *
Saya telah menemukan peretasan khusus Cygwin untuk mengatasi ini untuk saat ini.
Versi singkat:
Cukup buat grup windows kosong baru, gunakan chgrp untuk mengubah grup id_rsa untuk ini, dan kemudian menolak izin baca / tulis untuk grup.
Versi panjang:
Tekan tombol super dan ketik lusrmgr.msc . Gunakan manajer ini untuk membuat grup kosong, yang disebut say EMPTY_GROUP
Sekarang kita perlu memberi tahu Cygwin tentang grup baru ini.
Selanjutnya kita perbarui grup id_rsa :
Akhirnya, cari id_rsa di Windows Explorer, dan di bawah tab Security di Properties, tolak izin baca / tulis, dan Anda harus melakukannya dengan baik.
Saya tidak yakin bagaimana Cygwin dapat menangani ini dalam 7 tetapi tidak 8, tetapi masalahnya tampaknya berasal dari kelompok file id_rsa menjadi Tidak Ada, grup yang selalu memiliki akses baca / tulis penuh.
Juga, ini tampaknya hanya bekerja untuk ssh.exe yang datang dengan Cygwin, jadi jika Anda ingin menggunakan katakan ssh dengan git, timpa ssh.exe dari nampan di git Anda instal dengan yang dari folder bin di instal Cywgin Anda .
sumber
Menangkan 8 + Cygwin
Saya di Windows 8, 64bit. Melakukan hal berikut memecahkannya untuk saya:
sumber
Di cygwin, ketik perintah ini:
Atur grup yang benar ke folder rumah:
chgrp -Rv HomeUsers /home
Tetapkan izin yang benar untuk file identitas ssh:
chmod 600 -Rv ~/.ssh/id*
NB: jawaban yang diterima sebelumnya sudah usang. Nama grup adalah "Pengguna Rumah", bukan "Pengguna", belum dapat berkomentar.
sumber
Saya ingin mengomentari masalah itu juga. Saya mengalami masalah serupa pada PC Windows 7 saya menggunakan git melalui Cygwin.
Ketika mencoba untuk mendorong perubahan dari repositori git lokal saya ke repositori jarak jauh (menggunakan ssh dan keypair untuk otentikasi), git melemparkan pesan bahwa izin 0660 terlalu terbuka untuk file
Tentu saja tidak masalah bagi ssh-agent untuk menolak kunci privat yang terbuka ini.
Jadi saya mencoba hal-hal yang disebutkan dalam utas ini dan utas lainnya yang terkait dengan kepemilikan dan pola rwx pada file dan folder ~ / .ssh
Namun, kesalahan yang sama terlempar berulang kali.
Untuk beberapa alasan perlu untuk membunuh proses ssh-agent di cygwin dan menjalankan perintah berikut di bourne lagi shell (bash).
Jangan lupa untuk menambahkan identitas yang diinginkan ke ssh-agent, mis
Lalu saya ulangi perintah push yang valid seperti
dan semuanya bekerja dengan baik.
sumber
Untuk memperluas jawaban Roi Danton . Jika Anda telah menginstal Windows 8 di atas instalasi Windows lama Anda, dan direktori cygwin Anda sebelumnya masih berlaku, Anda harus melakukan beberapa hal lain terlebih dahulu.
Pertama, Ambil Kepemilikan Direktori / File Cygwin
Akan ada beberapa akun pengguna yang terkait dengan direktori dan subdirektori / file yang terlihat seperti
S-1-2-34-1234567890-1234567890-1234567890-123
Hapus ini dan ambil kepemilikan dengan akun pengguna Anda sendiri.
Properties
direktori cygwinAdvanced
padaSecurity
tabChange
pemilik untuk diri sendiri. Anda dapat mengetikkan nama depan atau alamat email terkait AndaRemove
pengguna yang tidak dikenal dari daftarEnable Inheritance
OK
di bagian bawah dan kemudianYes
ke kotak dialog.Kemudian, Di Cygwin, Ubah Kelompok Pengguna Dari Semua File Kunci
Dari jawaban Roi Danton :
.ssh
direktori -cd ~/.ssh
chgrp Users *
- ini akan memungkinkan Anda untukchmod
file dengan benar.chmod 400 *
. 600 juga akan berfungsi.Tes Untuk Melihat Jika Berhasil
Cukup ssh ke server pilihan Anda. Dalam kasus saya, Bitbucket -nya .
Hasil yang bagus:
Hasil buruk:
sumber
chgrp Users *
"C: /opscode/chef/embedded/bin/chgrp.exe": grup yang tidak valid `Pengguna '(Windows 10 Pro)
sumber