Perintah jauh dalam file konfigurasi ssh

12

Saya ingin mengatur ssh_config jadi setelah mengetik ssh my_hostnamesaya berakhir di folder tertentu. Sama seperti saya mengetik cd /folder/another_one/much_much_deeper/.

Bagaimana saya bisa mencapainya?

EDIT. Itu telah ditandai sebagai duplikat dari "Bagaimana cara ssh ke dir ..." namun itu bukan pertanyaan saya.

Saya tahu saya bisa menjalankan perintah apa pun dengan mengikuti sshperintah. Pertanyaan saya adalah tentang /ssh_configfile, bukan perintah.

Kazz
sumber
Saya sudah mengklarifikasi pertanyaan saya.
Kazz
Tidak ada tentang itu di man ssh_config. Yang terdekat adalah LocalCommand tetapi tidak dapat digunakan untuk perintah interaktif.
lgeorget
1
Bisakah Anda menjelaskan (dalam pertanyaan Anda) mengapa Anda merasa perubahan harus dilakukan ssh_config? Mungkin ada tempat yang lebih baik untuk mengkonfigurasi direktori awal, dan akan sangat membantu untuk memahami mengapa ada pembatasan khusus pada solusi yang mungkin.
roaima
1
Fakta "itu tidak dapat dilakukan dalam ssh_config" tidak membuat ini duplikat dari "melakukannya di Bash". "Kamu tidak bisa melakukan itu" adalah jawaban yang benar-benar valid.
Franklin Yu
1
@terdon Namun kenyataan "tidak mungkin" dapat berubah seiring waktu. Ya, itu mungkin sekarang. Sekarang saya (dan juga siapa pun di masa depan yang datang untuk melihat ini) memerlukan jawaban baru, dan kami terjebak di sini. Jika ini tidak dibuka kembali, saya membayangkan bahwa jalan yang diinginkan adalah membuat pertanyaan baru (dan menjawabnya)?
Franklin Yu

Jawaban:

19

Tidak ada cara untuk melakukan itu, sampai OpenSSH 7.6 . Dari manual :

Perintah Remote

Menentukan perintah yang akan dijalankan pada mesin jarak jauh setelah berhasil terhubung ke server. String perintah meluas ke akhir baris, dan dieksekusi dengan shell pengguna. Argumen untuk RemoteCommandmenerima token yang dijelaskan di bagian TOKENS .

Jadi sekarang kamu sudah bisa

RemoteCommand cd /tmp && bash

Itu diperkenalkan dalam komit ini .

Franklin Yu
sumber
5
Tambah RequestTTY forcejika perintah jarak jauh membutuhkan TTY. Misalnya:tmux new -As my-session
Aaron Blenkush
Ini adalah sshopsi pembunuh Terima kasih!
nhed
Ini membuat tidak mungkin menjalankan perintah lain, misalnya ssh my_hostname lsakan gagal dengan Cannot execute command-line and remote command.. Itu membuat alat lain yang menggunakan ssh seperti git dan rsync juga gagal.
remram
2

Saya ingin mengatur ssh_config jadi setelah hanya mengetik ssh my_hostname

Ini tidak mungkin. Tidak ada opsi untuk mencapai itu di ssh_config. Yang paling dekat dengannya adalah menyiapkan fungsi bash alias atau bash, seperti

myssh() {
    ssh -t $1 "cd /dir/; bash"
}
Jakuje
sumber
1

Saya menjawab tiket yang berbeda sebelum seseorang menunjukkan bahwa ini adalah yang asli.

Jika menggunakan mac, rekomendasi saya adalah menggunakan iTerm2 dan membuat profil. Letakkan ssh my_hostnamedi baris perintah, dan kemudian tambahkan perintah cd /folder/another_one/much_much_deeper/di teks kirim di mulai bidang. Ketika Anda terhubung ke sesi itu akan ssh ke nama host Anda dan cd ke direktori dalam kasus Anda, atau jalankan perintah.

Govna
sumber