Вопрос или проблема
Я пытаюсь подключиться к SFTP серверу с помощью ssh ключа. Я не могу использовать FileZilla, потому что у нас есть дополнительный уровень безопасности, который не позволяет мне использовать FileZilla. Я скопировал ssh ключ на сервер. У меня есть имя пользователя и имя хоста SFTP сервера. Я пытался найти команду, которую могу использовать, но не смог ее найти. Я нашел ссылку, где говорилось, чтобы скопировать ssh ключ в папку .ssh в файл authorized_keys, но я помню, что раньше не приходилось это делать.
Можете помочь?
Предполагая, что клиент работает на linux,
обычный клиент openssh sftp захватывает приватный ключ, если он находится в стандартном месте ~/.ssh/id_rsa
Если приватный ключ находится в нестандартном месте, используйте -i <путь_к_файлу_идентификации> (man sftp)
Разрешения и владение имеют значение на обоих концах: как для директорий, так и для файлов ~/.ssh/id_rsa и ~/.ssh/authorized_keys
Попробуйте детализированный логирование с помощью sftp -v или sftp -vvvv и проверьте, отклоняется ли какой-либо файл из-за владения пользователем/группой или разрешений файловой системы.
Также возможно, что на сервере отключен вход по приватному ключу. Проверьте журналы.
Ответ или решение
Для подключения к серверу SFTP с использованием SSH-ключа через командную строку, следуйте приведенной ниже инструкции. Этот процесс предполагает использование клиента OpenSSH, который обычно предустановлен в большинстве дистрибутивов Linux и macOS.
Шаги для подключения к SFTP-серверу:
-
Подготовка SSH-ключа: Перед подключением убедитесь, что у вас есть SSH-ключ. Если вы уже скопировали публичный ключ на сервер, вам необходимо добавить его в файл
~/.ssh/authorized_keys
на сервере. Команды для этого могут выглядеть следующим образом:cat ~/.ssh/id_rsa.pub | ssh username@sftp-server-hostname 'cat >> ~/.ssh/authorized_keys'
-
Проверка прав доступа: Права доступа к файлам и каталогам очень важны для работы SSH. Убедитесь, что у вас правильные права на каталоги и файлы:
chmod 700 ~/.ssh # Права для директории .ssh chmod 600 ~/.ssh/id_rsa # Права для приватного ключа chmod 600 ~/.ssh/authorized_keys # Права для файла authorized_keys на сервере
Убедитесь, что владелец этих файлов соответствует вашему пользователю.
-
Подключение через SFTP:
Если ваш приватный ключ находится в стандартном месте~/.ssh/id_rsa
, вы можете подключиться к SFTP-серверу с помощью следующей команды:sftp username@sftp-server-hostname
Если ваш приватный ключ находится в нестандартном месте или имеет другое имя файла, вам нужно указать его с помощью параметра
-i
:sftp -i /path/to/your/private_key username@sftp-server-hostname
-
Устранение неполадок: Если у вас возникли проблемы с подключением, вы можете использовать опцию для более детальной отладки:
sftp -v username@sftp-server-hostname
Или для еще более подробного вывода:
sftp -vvvv username@sftp-server-hostname
Это поможет вам увидеть сообщения об ошибках, связанные с проблемами авторизации, и другие потенциальные проблемы.
-
Проверка конфигурации сервера: Иногда сервер может быть настроен так, что доступ через ключи SSH отключен. Проверьте настройки SSH на сервере в файле
/etc/ssh/sshd_config
. Убедитесь, что следующие параметры установлены:PubkeyAuthentication yes PasswordAuthentication no
После изменения конфигурации не забудьте перезапустить службу SSH:
sudo systemctl restart sshd
Заключение
Подключение к SFTP-серверу с использованием SSH-ключа требует правильной установки и настройки ключей на обеих сторонах — и клиенте, и сервере. Убедитесь, что соблюдены все требования к правам доступа и настройке сервера. Используйте приведенные команды для подключения и устранения неполадок. Если у вас остались вопросы, не стесняйтесь их задавать.