SFTP Автоматический вход в систему

Я хочу знать, как я могу подключиться автоматически с помощью sftp с паролем в качестве аргумента в той же команде, чтобы получить автоматический вход в систему и выполнить один раз.

Пример:

Я хочу поместить это в сценарий и попытаться составить одно предложение для выполнения этой задачи.

Ура,

0
23.03.2016, 16:28
3 ответа

Есть четыре способа сделать SSH / scp без пароля:

  1. Создать новый ssh-ключ без парольной фразы на клиенте и добавьте его в authorized_keys на сервере.

  2. То же, что и выше, но задайте парольную фразу для ключа и используйте ssh-agent , чтобы разблокировать его перед запуском scp.

  3. Используйте общий доступ к ssh-соединению, возможно, с соответствующей настройкой ControlPersist , чтобы войти на сервер до запуска scp. Scp будет повторно использовать то же соединение и не будет нуждаться в пароле.

  4. Используйте какой-нибудь хитрый скрипт для ввода пароля, но ssh / scp активно препятствуют этому, так что это не так просто, как хотелось бы.

Я настоятельно рекомендую вам изучить первые два варианта (вариант 2 более безопасен) и вариант 3, если authorized_keys недоступны. Есть много мест, где описано, как это сделать.

Вариант 4 возможен (я вижу, что кто-то уже опубликовал решение), но вы должны знать, что это приведет к утечке вашего пароля другим пользователям машины и / или всем, кто может прочитать ваш скрипт. Ключи ssh защищены от всех, кроме пользователя root, а ключи, защищенные парольной фразой, защищены даже от root (не считая взлома ssh-agent).

2
28.01.2020, 02:35

Используйте SSHPASS

sshpass -p sftp user @ host

0
28.01.2020, 02:35

Выполните следующее:

ssh-keygen -t rsa -b 2048

затем

touch ~/.ssh/config

Теперь отредактируйте конфигурацию, чтобы она выглядела примерно так:

# host-specific options
Host enigma
    HostName mydomain.com
    Port 2547
    ServerAliveInterval 120
User YOURUSERNAME
    TCPKeepAlive Yes

Теперь подключитесь

ssh-copy-id username@server.com

Вы должны иметь возможность подключитесь к серверу, используя имя хоста в файле конфигурации. т.е. ssh enigma

В моем файле конфигурации около 20 подключений, и все они кратко указаны, поэтому мне не нужно каждый раз вводить домен и пароль.

Безопасный недостаток в том, что все соединения SSH, если вы не начинаете создавать другие файлы хоста. Находятся в одном файле. Защищено одним паролем. Итак, если вы сохраняете 20 подключений к одному файлу, то, если этот пароль скомпрометирован, то все 20 подключений будут скомпрометированы.

Я использую несколько файлов hosts: Personal, Work и Misc это не большая проблема, если утечка пароля тогда

0
28.01.2020, 02:35

Теги

Похожие вопросы