В предыдущих ответах упоминалось, как использовать директиву ProxyJump (, добавленную в OpenSSH 7.3 ), для подключения через промежуточный сервер (, обычно называемый хостом-бастионом ), но упоминайте его только как команду линейный аргумент.
Если это не машина, которую вы не будете подключать в будущем, лучше всего настроить ее на ~/.ssh/config
.
Я бы поставил файл типа:
Host office-machine
Hostname yochay-machine.internal.company.local
ProxyJump bastion-machine
Host bastion-machine
Hostname organization-server.company.com
...
Если вы используете более раннюю версию OpenSSH, которая не поддерживает ProxyJump, вы должны заменить ее эквивалентной:
ProxyCommand ssh -W %h:%p bastion-machine
и если ваша локальная версия ssh была очень старой и не поддерживала-W
:
ssh bastion-machine nc %h %p
хотя для последнего требуется, чтобы на машине-бастионе была установлена nc
.
Прелесть ssh в том, что вы можете настроить каждое место назначения в файле, и они будут очень хорошо складываться. Таким образом, вы в конечном итоге работаете с office-machine
в качестве имени хоста для всех инструментов (ssh, scp, sftp... ), поскольку они были прямыми подключениями, и они выяснят, как подключиться на основе ssh _. ] конфиг. У вас также могут быть подстановочные знаки, такие как Host *.internal.company.local
, чтобы все хосты, заканчивающиеся таким образом, проходили через определенный бастион, и это будет применяться ко всем из них. После правильной настройки единственная разница между соединением с одним переходом или двадцатью будет заключаться в более медленном времени соединения.
zsh/zftp
является FTP-клиентом . sftp
является клиентом SFTP . FTP и SFTP — совершенно разные протоколы. SFTP — это протокол передачи файлов через SSH, но это не FTP через SSH.
zftp open 10.211.55.8
будет работать только при наличии FTP-сервера на 10.211.55.8, в то время как sftp 10.211.55.8
работает на большинстве не -встроенных систем с SSH-сервером (это функция OpenSSH, которая обычно включена по умолчанию ). FTP, как и rsh, в значительной степени был вытеснен SSH 1,2 .
zftp
был разработан в основном из-за относительной сложности FTP. Не было бы особого смысла делать что-то подобное для SFTP. Обычно, если у вас есть доступ к SFTP, у вас также есть доступ к оболочке SSH и доступ к SCP, и вы можете использовать scp
для копирования файлов (zsh обеспечит завершение, поэтому вам не нужно ls
много ).
Чтобы упростить SFTP, можно использовать SSHFS для локального монтирования дерева каталогов удаленного сервера. Для этого требуется включенный SFTP на сервере и FUSE на клиенте. Обычно это просто вопрос установки пакета sshfs
вашего дистрибутива.
sudo pacman -S sshfs
mkdir -p ~/net/vm
sshfs 10.211.55.8: ~/net/vm
ls ~/net/vm/somedir
cp somefile ~/net/vm/somedir
1Раньше FTP обычно использовался без аутентификации, но теперь он в значительной степени вытеснен HTTP (S ).
2Существует стандарт для использования TLS с FTP, называемый FTPS , но он так и не получил широкого распространения.