Jalankan perintah jarak jauh menggunakan file konfigurasi ssh
32
Saya ingin dapat mengatur perintah untuk berjalan pada ssh login ke server, tanpa perlu mengetiknya. Pada dasarnya saya mencari file konfigurasi ssh yang setara dengan:
Dimungkinkan juga untuk memasukkan perintah dalam file kunci resmi Anda. ( ~/.ssh/authorized_keys). Ini memungkinkan Anda untuk menjalankan perintah khusus untuk setiap kunci dalam file. Saya menggunakan ini untuk meneruskan koneksi shell melalui firewall saya. Hasilnya adalah bahwa saya dapat ssh ke satu host dan secara otomatis menghubungkan sesi ke host di dalam jaringan. The authorized_keysentri terlihat seperti ini:
command="ssh -Tq <hostname> \"$SSH_ORIGINAL_COMMAND\"",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA... the rest of the key ...
Lebih khusus pengalihan adalah untuk contoh gitolite saya. Ini memungkinkan akses luar yang sederhana tanpa secara langsung mengekspos host gitolite ke akses eksternal apa pun. Periksa halaman manual untuk info lebih lanjut. ( http://linux.die.net/man/8/sshd )
Ini luar biasa, tidak tahu Anda bisa melakukan ini. +1
Brian Wigginton
3
Jika Anda memasukkan perintah ke file otor_keys Anda, itu akan merusak hal-hal seperti rsync dan scp - Anda akan mendapatkan sesuatu seperti ini: terminal terbuka gagal: bukan terminal. Perlu diketahui juga bahwa jika perintah gagal Anda tidak akan bisa masuk. Saya telah menemukan ini dengan cara yang sulit.
Jika Anda menjalankan OpenSSH, sepertinya
~/.ssh/rc
ini dieksekusi setelah login .sumber
/.ssh/rc
terletak di mesin klien atau server? Sepertinya dari dokumen server, kan?rc
file tersebut tampaknya gagal menjalankan hal-hal sepertiscreen
, mendapat kesalahan "Harus terhubung ke terminal"Anda dapat mengatur alias bash.
Dalam file .bashrc Anda, masukkan:
Maka Anda bahkan tidak perlu mengetikkan nama host.
Atau, jika Anda ingin melakukan ini dengan beberapa host (dan beberapa alias tidak berfungsi), maka gunakan skrip kecil:
sumber
Anda dinginkan ini di Anda
.ssh/config file
, untuk host di mana Anda ingin menjalankan perintah, tambahkandimana
<some command>
perintahmu Ini juga berfungsi dengan layar atau tmux.sumber