Saya memiliki server dengan SSH yang berjalan pada port non-standar. Alih-alih 22, ini berjalan pada 8129. Untuk masuk, saya menggunakan:
ssh -p 8129 hostname
Sekarang, setiap kali saya perlu mengatur kunci untuk login tanpa kata sandi, saya harus menyalin kunci publik dan menambahkannya ke otor_keys secara manual. Saya menemukan bahwa perintah ssh-copy-id
tersebut dapat digunakan untuk menyederhanakan proses ini, tetapi sepertinya tidak memiliki opsi untuk menentukan port dari server ssh.
Apakah ada cara untuk mengatakan ssh-copy-id
untuk menggunakan port 8129, atau haruskah saya melupakan perintah ini dan menyalin / menempel secara manual seperti sebelumnya?
ssh
memiliki sintaksisssh -p 1234 user@host
,ssh-copy-id "-p 1234 user@host"
dan akhirnyascp -P 1234 user@host
. Akan sangat menyenangkan memiliki sintaks yang sama.rsync -e "ssh -p 1234" user@host
. Saya bersumpah ini lebih merepotkan daripada layak menggunakan port khusus.ssh-copy-id "[email protected] -p 12345" -i ~/.ssh/id_rsa.pub 192.168.0.100
ssh-copy-id -p 8129 user@host
bekerja.ssh-copy-id
tidak mengambil argumen yang bisa diturunkan kessh
perintah yang mendasarinya , tetapi Anda bisa mengonfigurasi alias di~/.ssh/config
.Kemudian jalankan
ssh-copy-id myhost
.sumber
-p
bendera padassh
upaya reguler . Karena itu, ini bukan hanya jawaban yang tepat untuk pertanyaan ini, tetapi juga The Right Thing, titik.Pada openssh-client_6.2 sekarang ada flag port khusus untuk perintah yang memungkinkan sintaks ini:
Itu juga menambahkan dukungan untuk menambahkan opsi ssh lainnya dengan flag -o.
Inilah halaman manual Ubuntu untuk versi yang sesuai, diperkenalkan pada 13.04: http://manpages.ubuntu.com/manpages/saucy/man1/ssh-copy-id.1.html
sumber
Melihat sekilas pada sumber menunjukkan bahwa
ssh-copy-id
tampaknya tidak memiliki fungsi yang memungkinkan ini. Namun, Anda dapat melakukan sesuatu seperti yang berikut:sumber
Ini bekerja (dari sini ):
sumber
Saya selalu
scp
menyalinnya:Meskipun saya harus mengatakan, saya mungkin akan menggunakan metode (satu-line / koneksi) lainnya jika saya mengingatnya di masa depan. Tapi ini pilihan lain untukmu.
sumber
Di CentOS7 hanya:
Harap berhati-hati untuk tidak menempatkan user @ host dalam tanda kutip atau Anda akan mendapatkan kesalahan berikut dalam distribusi ini:
sumber
Dengan MacOS saya, ini berhasil.
sumber
Saya menggunakan perintah ini:
ssh-copy-id ssh://user@ip_addr:port
Contoh:
ssh-copy-id ssh://[email protected]:23
sumber