Пароль для ssh и scp
(1) Я хочу загрузить некоторые файлы на сервер
for (( i=0 ; i < 23 ; i+=1 )); do
echo mypassword | scp tim@xxx.xxx.xxx.xxx:project/$i/train10000/finer_search_c_g ~/project/$i/train10000/
done
Я надеюсь, что по конвейеру мой пароль к scp, цикл будет выполняться без взаимодействия. Однако он по-прежнему просит меня ввести пароль вручную. Как мне указать пароль для scp?
(2) Я не использую ключи аутентификации, сгенерированные ssh-keygen, потому что сервер фактически является головным узлом кластера. Я обнаружил, что если я использую ssh-keygen для генерации ключей аутентификации, файлы в ~/.ssh создадут доступ между узлами, которым требуется пароль, но я не могу найти решение. Можно ли сделать доступ между узлами с пустым паролем при использовании ключей аутентификации для доступа к головному узлу извне кластера?
Спасибо и всего наилучшего!
3 ответа
Используйте файл ключа. Поместите закрытый файл ключей на свой клиент и используйте ssh-agent, чтобы файл ключа был загружен в память и расшифрован. Поместите файл открытого ключа в каждую из систем, к которой вы хотите получить доступ.
Используйте переадресацию аутентификации для создания соединений между различными хостами без запроса аутентификации.
scp/ssh проверит входной поток, чтобы проверить, является ли он TTY, и, если нет, попробует альтернативные способы получения пароля, поэтому простой конвейер не будет работать (потому что канал не является tty).
Вам необходимо скопировать открытый ключ в файл.ssh/authorized_keys в системе, к которой вы хотите подключиться.