Как AnyBucket использует ваши настройки SSH

Отдельного хранилища ключей, которое нужно заполнять, нет. Для SFTP AnyBucket запускает /usr/bin/ssh — ту же программу, что и Терминал, поэтому:

  • ваши закрытые ключи в ~/.ssh работают,
  • ключи, загруженные в агент SSH, работают,
  • действует каждый блок Host в ~/.ssh/config, включая HostName, User, IdentityFile и ProxyJump,
  • ключи хостов сверяются с ~/.ssh/known_hosts, общим с Терминалом.

Простое правило: если ssh user@host работает в Терминале, он работает и в AnyBucket. Пароли, если сервер их запрашивает, сохраняются в вашей связке ключей «вход».

Создайте ключ и добавьте его на сервер

Если ключа у вас ещё нет:

  1. Откройте Терминал и выполните ssh-keygen -t ed25519. Нажмите Return, чтобы оставить файл по умолчанию, ~/.ssh/id_ed25519, и задайте парольную фразу.
  2. Добавьте открытую половину, ~/.ssh/id_ed25519.pub, в ~/.ssh/authorized_keys на сервере или отправьте её администратору сервера. Никогда не передавайте файл без .pub.
  3. Проверьте: ssh user@host должен входить, не спрашивая пароль сервера.

Чтобы не вводить парольную фразу каждый раз, добавьте ключ в агент командой ssh-add. macOS может хранить парольную фразу в вашей связке ключей.

Дайте серверам имена в ~/.ssh/config

Блок Host задаёт серверу короткое имя и параметры подключения к нему:

Host staging
  HostName staging.example.com
  User deploy
  IdentityFile ~/.ssh/id_ed25519

Теперь ssh staging входит как deploy с этим ключом. В AnyBucket подключитесь к серверу staging по SFTP, и будет действовать тот же блок, потому что AnyBucket передаёт имя в ssh точно так же, как Терминал.

Подключение к серверу через промежуточный хост

Ко многим серверам можно подключиться только через бастион, или промежуточный хост (jump host). В Терминале для разового подключения вы бы написали ssh -J bastion app. Чтобы сделать это постоянным, используйте ProxyJump:

Host bastion
  HostName bastion.example.com
  User me

Host app
  HostName 10.0.1.20
  User deploy
  ProxyJump bastion

Проверьте командой ssh app в Терминале. Когда вход заработает, подключите AnyBucket к app по SFTP: соединение само пройдёт через бастион, и в приложении ничего дополнительно настраивать не нужно. Несколько переходов объединяются в цепочку так же — списком через запятую после ProxyJump.

Ключи хостов: «ещё неизвестен» или «изменился»

При первом подключении к серверу его ключа ещё нет в ~/.ssh/known_hosts, и AnyBucket, как и Терминал, спросит, прежде чем доверять ему. Сравните отпечаток с тем, который опубликовал администратор сервера.

Если AnyBucket сообщает, что ключ изменился, остановитесь и выясните причину. После того как сервер пересобрали или переустановили, новый ключ ожидаем. В остальных случаях не подключайтесь: изменившийся ключ может означать, что вы общаетесь не с тем сервером, о котором думаете. Подробнее в разделе устранение неполадок.

Если не работает

  1. Сначала попробуйте в Терминале с тем же именем хоста, что и в AnyBucket: ssh staging. Если не получается, проблема в настройках SSH, а не в приложении.
  2. Добавьте -v (ssh -v staging), чтобы увидеть, какие ключи и строки конфига пробует ssh.
  3. Проверьте агент командой ssh-add -l: она показывает ключи, которые держит агент.
  4. Проверьте права доступа: ssh отказывается использовать закрытые ключи, которые могут читать другие пользователи. Это исправляет chmod 600 ~/.ssh/id_ed25519.

Всё ещё не получается? См. SFTP-ключи или промежуточные хосты не работают или напишите в поддержку, приложив вывод ssh -v без личных данных.