Как AnyBucket использует ваши настройки SSH
Отдельного хранилища ключей, которое нужно заполнять, нет. Для SFTP AnyBucket запускает /usr/bin/ssh — ту же программу, что и Терминал, поэтому:
- ваши закрытые ключи в
~/.sshработают, - ключи, загруженные в агент SSH, работают,
- действует каждый блок
Hostв~/.ssh/config, включаяHostName,User,IdentityFileиProxyJump, - ключи хостов сверяются с
~/.ssh/known_hosts, общим с Терминалом.
Простое правило: если ssh user@host работает в Терминале, он работает и в AnyBucket. Пароли, если сервер их запрашивает, сохраняются в вашей связке ключей «вход».
Создайте ключ и добавьте его на сервер
Если ключа у вас ещё нет:
- Откройте Терминал и выполните
ssh-keygen -t ed25519. Нажмите Return, чтобы оставить файл по умолчанию,~/.ssh/id_ed25519, и задайте парольную фразу. - Добавьте открытую половину,
~/.ssh/id_ed25519.pub, в~/.ssh/authorized_keysна сервере или отправьте её администратору сервера. Никогда не передавайте файл без.pub. - Проверьте:
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 сообщает, что ключ изменился, остановитесь и выясните причину. После того как сервер пересобрали или переустановили, новый ключ ожидаем. В остальных случаях не подключайтесь: изменившийся ключ может означать, что вы общаетесь не с тем сервером, о котором думаете. Подробнее в разделе устранение неполадок.
Если не работает
- Сначала попробуйте в Терминале с тем же именем хоста, что и в AnyBucket:
ssh staging. Если не получается, проблема в настройках SSH, а не в приложении. - Добавьте
-v(ssh -v staging), чтобы увидеть, какие ключи и строки конфига пробуетssh. - Проверьте агент командой
ssh-add -l: она показывает ключи, которые держит агент. - Проверьте права доступа:
sshотказывается использовать закрытые ключи, которые могут читать другие пользователи. Это исправляетchmod 600 ~/.ssh/id_ed25519.
Всё ещё не получается? См. SFTP-ключи или промежуточные хосты не работают или напишите в поддержку, приложив вывод ssh -v без личных данных.