Віддалена команда у файлі ssh config


12

Я хотів би встановити ssh_config, щоб після введення тексту ssh my_hostnameя опинився у певній папці. Так само, як я б набрав cd /folder/another_one/much_much_deeper/.

Як я можу цього досягти?

EDIT. Це було позначено як дублікат "Як врізатися в дір ...", але це не моє питання.

Я знаю, що я можу виконувати будь-які команди, доклавши їх до sshкоманд. Моє запитання щодо /ssh_configфайлу, а не команди.


Я уточнив своє запитання.
Kazz

У цьому нічого немає man ssh_config. Найближчий - LocalCommand, але його не можна використовувати для інтерактивної команди.
lgeorget

1
Скажіть, будь ласка, (у своєму запитанні), чому ви вважаєте, що потрібно зміни ssh_config? Напевно, є кращі місця для налаштування стартового каталогу, і було б корисно зрозуміти, чому існує таке обмеження щодо можливого рішення.
roaima

1
Факт "цього не можна зробити в ssh_config" не робить це дублікатом "зроби це в Bash". "Ви не можете цього зробити" - цілком коректна відповідь.
Франклін Ю

1
@terdon Однак факт "це неможливо" може змінюватися з часом. Так, це можливо і зараз. Тепер мені (як і будь-кому, хто в майбутньому приходить до цього) потрібна нова відповідь, і ми застрягли тут. Якщо це не буде відкрито заново, я уявляю, що бажаний шлях - це створити нове запитання (і відповісти на нього)?
Франклін Ю

Відповіді:


19

До цього не було способу, поки OpenSSH 7.6 . З посібника :

RemoteCommand

Вказує команду для виконання на віддаленій машині після успішного підключення до сервера. Командний рядок поширюється на кінець рядка і виконується з оболонкою користувача. Аргументи щодо RemoteCommandприйняття лексем, описаних у розділі TOKENS .

Тож тепер ти можеш мати

RemoteCommand cd /tmp && bash

Це було введено в цей комітет .


5
Додати, RequestTTY forceякщо для віддаленої команди потрібна TTY. Наприклад:tmux new -As my-session
Аарон Бленкуш

Це вбивчий sshваріант Дякую!
nhed

Це унеможливлює виконання інших команд, наприклад ssh my_hostname ls, не вдасться Cannot execute command-line and remote command.. Це робить інші інструменти, які використовують ssh, як git та rsync, також не вдається.
ремрам

2

Я хотів би встановити ssh_config так, щойно ввівши ssh my_hostname

Це неможливо. Немає жодного варіанту, щоб цього досягти ssh_config. Найближчим до нього є налаштування псевдоніма bash або функції bash, наприклад

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

1

Я відповів на інший квиток, перш ніж somoene зазначив, що це оригінал.

Якщо ви використовуєте mac, моя рекомендація - використовувати iTerm2 та створити профіль. Помістіть ssh my_hostnameкомандний рядок, а потім додайте команду cd /folder/another_one/much_much_deeper/в поле надіслати текст на стартовому полі. Коли ви підключитесь до сеансів, він схилятиметься до вашого імені хоста та cd до каталогу у вашому випадку, або виконує команду.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.