Новая функция оболочки: "ssh: команда не найдена" - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь создать функцию, которая соединяет меня с ssh-сервером, затем становится su, а затем ssh - на другой сервер, поэтому я сделал следующее:

function test 
     ssh -t testuser@server1 'sudo ssh -t testuser@server2' 
end

При выполнении я получаюследующая ошибка ssh: command not found

Но когда я запускаю его прямо в терминал, он работает без проблем.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Моя проблема была решена, когда я добавил каждый из них в папку функций fish:

~ / .config / fish / functions

Я только что создал файл с именем myfunction.fish ивнутри этого файла я вставил определение функции:

function myfunction 
     ssh -t testuser@server1 'sudo ssh -t testuser@server2' 
end

сохранил его, вышел из рыбы и теперь эта функция постоянна.

0 голосов
/ 08 декабря 2018

Звучит как проблема с путем на сервере 1.

Что из командной строки вы увидите, если наберете следующее?

ssh -t testuser@server1 sudo which ssh 

Если SSH не указан в пути для root, вам может потребоваться указать полные пути, например что-то вроде:

ssh -t testuser@server1 sudo /usr/bin/ssh testuser@server2

Возможно, вам придется настроить пути в соответствииваша среда, конечно.

Кроме того, если вы пытаетесь подключиться от root на server1 к server2, можете ли вы просто подключиться по ssh к root @ server1?Если это так, возможно, вы могли бы использовать функциональность «ProxyJump», которая была добавлена ​​в OpenSSH 7.3.Это зависит от возможности удаленного входа в систему как root, что может быть невозможно, в зависимости от вашей среды.

ssh -J root@server1 testuser@server2
...