Есть ли способ, с помощью одной команды, установить ssh-соединение от моего компьютера A, через компьютер B, к компьютеру C, чтобы у меня был доступ к оболочке на компьютере C?
Морщинка (которая, по-видимому, исключает простую переадресацию ssh-соединения с помощью опции -L), состоит в том, что у меня есть пароль к учетной записи на компьютере B, а учетной записи на компьютере B разрешено подключаться к учетной записи на компьютере C, но У меня нет пароля к учетной записи на компьютере C.
Ответы:
Я понял, что вы хотите просто войти на компьютер C, а не туннелировать что-либо от A до C. Итак, это должно сработать:
Возможно, вам придется вводить пароли дважды, сначала для компьютера B, а затем для компьютера C, но этого можно избежать с помощью аутентификации пары ключей ssh.
источник
ssh -t computer-b "ssh -t computer-c 'ssh computer-d'"
: DВы, вероятно, хотите использовать ProxyCommand SSH: http://benno.id.au/blog/2006/06/08/ssh_proxy_command
источник
Если вы используете ssh-ключи, вы можете сгенерировать новый ключ для машины B и использовать его для подключения от A к B. На машине B вы можете добавить
в
~/.ssh/authorized_keys
файле. Это означает, что всякий раз, когда вы подключаетесь к B с помощью этого ключа ssh, он выполняетssh C
команду.Я не знаю, работает ли это с scp.
источник
использование
ProxyCommand
См
man ssh_config
. Я рекомендую использоватьProxyCommand
. Давайте возьмем ваш оригинальный сценарий:Изменить
~/.ssh/config
со следующим содержанием.Теперь вы сможете прозрачно добраться до компьютера C.
Преимущества этого метода
Более безопасный
Вам нужен только ваш закрытый ключ, чтобы быть на компьютере A (ваш компьютер). Команда
nc
будет действовать как прокси, по которому SSH будет шифровать трафик. Это включает в себя аутентификацию. Распространение вашего личного ключа на несколько серверов - очень плохая идея (поскольку любой скомпрометированный сервер с вашим закрытым ключом в конечном итоге ставит под угрозу ваш закрытый ключ).Соответствует нескольким направлениям
Можно использовать несколько компьютеров назначения
Host
. Один компьютер или любой компьютер в определенной сети (например,192.168.35.0/24
в приведенном выше примере) для прокси через компьютер B. Он также служит псевдонимом.В приведенном выше примере он будет прокси через компьютер B, чтобы получить IP-адрес.
Дейзи цепи прокси
Используя этот метод, вы можете подключить столько автоматических прокси, сколько необходимо. Например, вы можете добавить компьютер D, который доступен только с компьютера C, и он будет работать прозрачно.
ssh computerd
автоматически прокси через компьютер C и компьютер B в приведенных вышеssh_config
примерах.источник