Buat sepasang kunci RSA dan memindahkan kunci publik
Langkah pertama adalah untuk menciptakan sepasang kunci pada mesin
klien (ada kesempatan baik bahwa ini hanya akan menjadi komputer Anda):
ssh-keygen-t rsa
Paste kunci ke authorized_keys file dimaksudkan login ssh simpul menggunakan SSH:
cat ~ / .ssh / id_rsa.pub | ssh user@123.45.56.78 "cat >> ~ / .ssh / authorized_keys"
chmod 600
semua key
file (baik lokal dan remote), sehingga tidak ada pengguna lain dapat membacanya: chmod 600 ~ / .ssh / id_rsa *
Demikian pula, pastikan remote
~/.ssh/authorized_keys
file chmod 600
juga: chmod 600 ~ / .ssh / authorized_keys
Kemudian, ketika Anda melakukan
ssh remote.machine
, harus meminta Anda untuk memasukkan sandi kunci itu, bukan mesin remote. Untuk membuatnya lebih baik untuk digunakan, Anda dapat menggunakan
ssh-agent
untuk memegang kunci didekripsi dalam memori - ini berarti Anda tidak perlu mengetik password keypair Anda setiap saat. Untuk menjalankan agen, Anda menjalankan (termasuk tanda kutip back-tick, yang eval output dari ssh-agent
perintah) ssh-agent
atau yang satu ini bekerja pada CentOS untuk saya.
exec ssh-agent pesta
Pada beberapa distro, ssh-agent dimulai secara otomatis. Jika Anda menjalankan
echo $SSH_AUTH_SOCK
dan itu menunjukkan jalan (mungkin dalam / tmp /) itu sudah setup, sehingga Anda dapat melewati perintah sebelumnya. Kemudian untuk menambahkan kunci Anda, yang Anda lakukan
ssh-add ~ / .ssh / id_rsa
dan masukkan kata sandi Anda. Ini disimpan sampai Anda menghapusnya (menggunakan
ssh-add -D
perintah, yang menghapus semua kunci dari agen) Mengubah pass-frase di workstation (jika diperlukan):
ssh-keygen -p
Penggunaan ssh-agent untuk menghindari terus pass-frase mengetik
Pada freebsd jenis workstation:
ssh-agent $BASH
ssh-add
Ketik pass-frase
Server Sekarang ssh tidak akan menggunakan cepat untuk password.
Dua perintah di atas dapat ditambahkan ke file bash_profile ~ /. Anda
sehingga segera setelah Anda login ke workstation Anda dapat mengatur
agen.
Menghapus kunci dipegang oleh ssh-agent
Untuk melihat daftar kunci, masukkan:
ssh-add -l
Untuk menghapus semua kunci, masukkan:
ssh-add -D
Untuk menghapus kunci tertentu, masukkan:
ssh-add -d key
Kunci (atau) Membuka SSH Agen
Anda dapat mengunci agen ssh seperti yang ditunjukkan di bawah ini menggunakan opsi-x. Setelah Anda mengunci agen, Anda tidak dapat menambah, menghapus, atau entri daftar di agen ssh tanpa password.
$ Ssh-add-x
Masukkan password kunci:
Sekali lagi:
Agen terkunci.
Setelah mengunci, jika Anda mencoba untuk menambahkan, Anda akan se
pesan SSH_AGENT_FAILURE seperti yang ditunjukkan di bawah ini.
$ Ssh-add
SSH_AGENT_FAILURE
SSH_AGENT_FAILURE
Tidak dapat menambahkan identitas: / home / ramesh / .ssh / id_rsa
Untuk membuka agen, gunakan opsi-X seperti yang ditunjukkan di bawah ini. Pastikan Anda memasukkan password yang sama yang Anda berikan saat penguncian agen. Jika Anda memberikan password yang salah, Anda akan menetapkan "Gagal untuk membuka agen." Pesan.
$ Ssh-add-X
Masukkan password kunci:
Agen dibuka.
======
Lebih SSH Trik ...
Bagian ini terutama disalin dari pos mengagumkan: SSH Kung-Fu oleh Tyblog dengan beberapa penambahan dan penghapusan yang sesuai dengan gaya saya.
Tunnelling
Memerlukan akses ke port di belakang firewall? ssh telah mendapat Anda tertutup. Jika Anda perlu untuk mengakses endpoint terpencil http://no-public-access:80 tetapi dapat mencapai host yang dari host lain yang Anda dapat log in ke (sebut saja ssh-host), coba ini:
ssh-L 8080: no-publik-akses: 80 user @ ssh host
Kemudian browse ke http://localhost:8080. Permintaan Anda sedang diarahkan melalui
ssh-host
dan tekan no-public-access:80
dan diarahkan kembali ke Anda sangat berguna..
Mount Filesystem
NFS, sementara terhormat, cukup jelek ketika datang untuk aman berbagi direktori. Anda dapat berbagi ke seluruh subnet, tapi apa pun di luar itu akan sulit. Masukkan sshfs, filesystem ssh.
Aku punya mesin yang disebut
wonka
mencoba untuk berbagi direktori /srv/factory
dengan host bucket
. Dengan asumsi bahwa pengguna charlie
pada bucket
telah tombol diatur pada wonka
, dan dengan asumsi bahwa saya punya sshfs tersedia (menginstal melalui manajer paket pilihan Anda jika which sshfs
kembali apa-apa), mencoba ini: $ Sshfs wonka :/ srv / pabrik / mnt-o idmap = user
Semuanya cukup jelas kecuali untuk filesystem mount option
idmap
. Ituhanya mencoba untuk memetakan unix ID numerik dari server ke pengguna
Anda mount filesystem seperti (itu adalah pilihan yang paling
merepotkan.)
Dan presto, Anda berbagi filesystem dengan cepat, mudah, dan aman. Peringatan
di sini adalah bahwa perubahan filesystem dapat mengambil sedikit lebih
lama untuk menyebarkan dibandingkan dengan skema file-sharing yang sama
seperti SMB atau NFS.
File Jauh Editing
Trik ini bergantung pada kemampuan netrw vim (fungsi direktori browsing) dan scp (program adik ssh.)
Netrw memungkinkan vim untuk menelusuri filesystem pada filesystem lokal dengan mudah (mencobanya di terminal dengan
$ vim [path]
, seperti $ vim .
. Namun, kita dapat melewati vim jalur remote menggunakan scp://
untuk mencapai mengedit file jarak jauh : $ Vim scp :/ / wonka /
Anda sekarang sedang berada isi direktori home Anda pada
wonka
dalam vim. Pengeditan file yang Anda buat akan disinkronisasikan atas pada menulis melalui scp.
Tab-Completion
Bukan trik, tapi benar-benar berguna.
Apakah Anda ssh-ed menjadi mesin seperti ini di masa lalu?
$ Ssh supercalifragilisticexpialidocious
Kabar baik, Anda mungkin bisa melakukan ini:
$ Ssh sup <TAB>
dan
~/.ssh/known_hosts
berkas.
Proxy Ringan
Ini mungkin salah satu trik favorit saya, dan ini sangat berguna ketika kebutuhan untuk itu muncul.
The tunneling contoh sebelumnya sederhana: kita forwarding port lokal seperti
8080
ke endpoint terpencil, dan menangani ssh lewat paket melalui ssh hospes perantara Anda. Namun, bagaimana jika Anda ingin menempatkan sebuah program sepenuhnya di belakang host ssh? Melakukanhal ini memungkinkan Anda untuk dasarnya membuat proxy yang sangat
ringan, independen semacam solusi VPN seperti PPTP atau OpenVPN.
ssh memiliki opsi untuk ini,
-D
bendera. Menjalankan ssh dengan opsi berikut $ Ssh-D 9090 user @ host
mengekspos port lokal
9090
sebagai SOCKS proxy. Anda kemudian dapat mengubah pengaturan browser Anda untuk menggunakan proxy SOCKS lokal untuk rute lalu lintas browsing. Konfigurasi saya di Firefox untuk contoh sebelumnya menunjukkan di sini: Perhatikan bahwa untuk Firefox setidaknya, aku harus mengatur bendera berikut dalam http://about:config saya agar semuanya bekerja dengan benar:
Cobalah browsing ke situs seperti geoiptool dan Anda akan menemukan bahwa IP Anda sekarang berasal dari host ssh Anda.
Hal
ini mungkin awalnya seperti sedikit tidak berguna, tetapi ketika Anda
mempertimbangkan bahwa Anda juga dapat menggunakan murah (atau gratis)
EC2 instance mana saja di dunia ... ada banyak kemungkinan. Sebagai
contoh, saya telah menggunakan trik ini untuk mengakses US-satunya
layanan ketika bepergian ke luar negeri dan telah bekerja sangat baik.
Mengakses NAT-Ed Host Langsung
Sebelum menyelam ke satu ini, saya ingin menekankan bahwa jika Anda tidak mengambil keuntungan penuh dari Anda
~/.ssh/config
, Anda benar-benar harus. Berhenti menggunakan alias
dan mulai menggunakan nama host singkatan dalam file config ssh. Melakukanhal itu memungkinkan Anda menggunakan nama pendek yang sama dalam
setiap aplikasi yang ramah ssh (scp, rsync, vim, dll) dan cocok baik
untuk menyediakan lingkungan terpadu jika Anda mendistribusikan dotfiles
Anda di mesin.
Pindah. file konfigurasi ssh mengikuti sintaks ini:
Tuan foobar
Nilai opsi
Sebagai contoh, Anda dapat mengurangi perintah
$ Ssh-p12345 foo@bar.baz.edu-i ~ / .ssh / customkey
untuk
ssh bar
dengan menambahkan berikut ke
~/.ssh/config
: Tuan rumah bar
Foo Pengguna
Port 12345
IdentityFile ~ / .ssh / customkey
Hostname bar.baz.edu>
Sekarang kita sudah mencoba-coba konfigurasi, lihat stanza konfigurasi ini:
Tuan behind.bar
# ProxyCommand ssh bar exec nc belakang% p
# Aku sudah sejak dididik bahwa memanggil netcat untuk meneruskan
# Sudah ditinggalkan, gunakan-W bendera sebagai gantinya:
ProxyCommand ssh-q-W% h:% p bar
ProxyCommand
mengarahkan ssh cara untuk terhubung ke behind.bar
: terhubung ke bar
(didefinisikan sebelumnya) dan menggunakan netcat untuk terhubung ke port yang ssh biasanya akan terhubung ke. rute ssh melalui netcat untuk terhubung ke host behind
, yang tidak bisa terhubung langsung ke sebelumnya. Diagram berikut menunjukkan. Aku
sudah Anda pernah mencoba untuk menyalin file dari mesin NAT-ed, Anda
akan melihat kegunaan dalam hal ini: Anda pada dasarnya dapat
memperlakukan NAT-ed tuan rumah seolah-olah tidak ada host intermediate
antara klien ssh dan daemon .
Berbagi Koneksi
Saya
sering menemukan bahwa ketika saya sedang bekerja pada sebuah host
remote, ada kesempatan yang cukup bagus saya harus scp file lebih atau
masuk lagi selama sesi ssh lain. Meskipun Anda bisa
bernegosiasi ssh jabat tangan asimetris yang lain, mengapa tidak
menggunakan koneksi yang sudah ada untuk membuat salinan file yang lebih
cepat atau login?
Gunakan
Controlpath
: Tuan busyserver
Controlmaster auto
Controlpath ~ / .ssh/ssh-% r @% h:% p.sock>
Ini berarti pada koneksi pertama yang
busyserver
, ssh akan membuat socket di ~/.ssh/
yang dapat dibagi oleh perintah lain. Jika Anda menggunakan perintah seperti rsync atau scp, ini dapat membuat tugas-tugas copy berulang-ulang lebih cepat.
0 comments:
Posting Komentar