ssh-copy-id adalah skrip yang cukup sederhana yang seharusnya mudah direplikasi di bawah windows.
Jika Anda mengabaikan semua penanganan parameter, penanganan kesalahan, dan sebagainya, ini adalah dua perintah dari ssh-copy-id yang benar-benar melakukan pekerjaan sebagian besar waktu.
GET_ID="cat ${ID_FILE}"
{ eval "$GET_ID" ; } | ssh ${1%:} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1
Menggunakan alat dempul, perintah seperti ini harus sama (tidak diuji).
type public_id | plink.exe username@hostname "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"
Jika Anda ingin melakukan semua penanganan kesalahan yang sama, dan lokasi kunci otomatis, saya yakin menulis skrip di Windows akan jauh lebih rumit, tetapi tentu saja mungkin.
plink.exe -pw password
bekerja. Juga jika Anda tahu ada .ssh / berwenang_keys ada perintahnyatype id_rsa.pub | plink.exe -ssh user@host -pw password "cat >> .ssh/authorized_keys"
.ssh/
direktori ada. The>>
redirection kemudian akan membuat file jika tidak ada.Jawaban ini tidak membantu saya. Saya benar-benar tidak memerlukan skrip gila. Saya telah membuat kunci publik di mesin klien saya di git bash dan mencoba untuk menyalinnya ke VPS.
Setelah membuat kunci publik Anda, kunci tersebut harus disimpan sebagai "(folder apa pun yang Anda mulai) /. Ssh / id_rsa.pub"
Jadi gunakan perintah ini: di
cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat >> ~/.ssh/authorized_keys"
manauser
nama pengguna Anda (kadang-kadang "root", atau apa pun yang telah Anda siapkan), dan ganti123.45.67.89
dengan alamat IP mesin / host / VPS Anda.Jika direktori
.ssh
belum dibuat di mesin host, gunakan variasi kecil ini:cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
sumber
ssh-copy-id melakukan beberapa hal (baca halaman manual untuk detailnya), tetapi hal terpenting yang dilakukannya adalah menambahkan konten file kunci publik lokal Anda ke file jarak jauh yang disebut otorisasi_keys.
Anda bisa melakukannya sendiri dengan membuka file kunci dengan editor teks dan menempelkan konten di terminal Kitty.
echo 'long_line_with_contents_of_public_key_file' >> .ssh/authorized_keys
Atau, Anda dapat mengunggah file menggunakan WinSCP (yang menggunakan sftp, atau scp sebagai cadangan) dan melakukan sesuatu yang mirip dengan saran saya sebelumnya, tanpa menyalin / menempel dengan jelek.
cat id_rsa.pub >> .ssh/authorized_keys
di mana id_rsa.pub adalah nama file dari kunci publik yang Anda unggah.
sumber
Terinspirasi oleh jawaban zoredache, saya telah membuat banyak skrip yang merupakan versi windows. Namun mereka semua bergantung pada plink. Silakan lihat di sini
https://github.com/VijayS1/Scripts/blob/master/ssh-copy-id/
Saya juga memiliki skrip wincp yang dapat digunakan sesuai jawaban lain. :) Kutipan dari readme:
Metode yang dicoba sejauh ini:
usage: .\Scriptname [email protected] password [identity file]
usage: .\Scriptname /i:idtest.pub [email protected] /p:password
usage: .\Scriptname -i idtest.pub [email protected] password
# "WinSCP.com" /script=".\Scriptname" /parameter "user[:password]@example.com" "id_rsa.pub" [/log=".\copyssh.log]"
sumber
Di Windows 7 ada ssh.exe
Inilah yang bekerja untuk saya:
1. buat identitas (di windows)
Itu menciptakan file identitas di direktori home. Saya mengubah nama kunci publik menjadi "id_rsa"
2. salin file ke sistem linux target menggunakan Kredit ssh ke https://serverfault.com/users/984/zoredache untuk jawabannya
Catatan: Untuk beberapa alasan, perpipaan tidak berfungsi untuk saya:
3. Perbaiki file di linux File id_rsa.pub di windows adalah multiline di mana linux mengharapkannya dalam satu baris sehingga kita harus memperbaikinya sedikit. Login ke linux dan buka file:
Sebagai contoh:
harus menjadi
4. mengujinya
Ini harus mencantumkan konten / tmp tanpa meminta kata sandi.
sumber
authorized_keys
ke baris tunggal adalah yang saya butuhkan!Jika Anda tidak memiliki
ssh-copy-id
Windows, Anda dapat menjalankannya di server itu sendiri..pub
ekstensi..pub
file ke server.Pada jenis server:
Pada
ssh-copy-id
skrip Windows dilengkapi dengan Git untuk Windows . Jadi Anda dapat menggunakannya secara lokal, jika Anda memiliki Git untuk Windows.Jika Anda tidak ingin melakukan ini secara manual, Anda dapat menggunakan WinSCP 5.15. Ini dapat mengatur otentikasi kunci publik untuk Anda.
Gunakan Alat> Instal Kunci Publik ke tombol Server pada SSH> halaman Otentikasi dialog Pengaturan Situs Lanjutan WinSCP .
(Saya penulis WinSCP)
sumber
Jika Anda menggunakan cmder (atau msysgit / mingw yang memiliki scp & ssh), saya baru saja menulis skrip python sederhana untuk ini. Itu dapat ditemukan di sini: https://gist.github.com/ceilfors/fb6908dc8ac96e8fc983
Contoh penggunaan: python ssh-copy-id.py user @ remote-machine.
Kata sandi akan diminta saat menjalankan skrip.
sumber
apa yang saya lakukan, memiliki CygWin di Win10 saya, terhubung ke Linux (berdasarkan jawaban di atas):
- note: menggunakan cat, ia akan menyelesaikan jalur cygwin secara otomatis, serta perintah cygwin menggunakan struktur cygwin-linux-folder-structure
sumber
Langkah-langkah berikut akan dilakukan:
LANGKAH-1: Hasilkan Pasangan Kunci RSA
STE2-2: ssh-copy-id setara di windows
LANGKAH-3: Otentikasi tanpa kata sandi berfungsi!
sumber
Ada versi Windows dari ssh-copy-id yang saya temukan di GitHub: https://github.com/zhengyi-yang/ssh-copy-id/tree/master/dist
sumber
Versi Powershell untuk SSH termasuk dalam Git Untuk Windows
Bahkan, itu bisa bekerja selama Anda ada
ssh
di jalur Anda. Tambahkan yang berikut ini di profil PowerShell Anda:Di konsol PowerShell:
sumber