Я хотел бы создать скрипт в HP-UX для отправки sftp с паролем. У меня есть эта команда
sftp -o PasswordAuthentication=
но если я отвечаю да или нет после этого, у меня возникает эта проблема «Проверка ключа хоста не удалась»
решение1
Если у вас есть socat
под рукой, в руководстве есть пример, который вы можете использовать.
(sleep 5; echo PASSWORD; sleep 5; echo ls; sleep 1) |
socat - EXEC:'ssh -l user server',pty,setsid,ctty
EXEC’utes an ssh session to server. Uses a pty for communication
between socat and ssh, makes it ssh’s controlling tty
(ctty), and makes this pty the owner of a new process group
(setsid), so ssh accepts the password from socat.
решение2
Лучше использовать аутентификацию с открытым/закрытым ключом, но если вы все же хотите использовать пароль в вашем текстовом скрипте, я бы использовал lftp
. Это отличный клиент, который позволяет подключаться по ftp, sftp, ftps, вам нужно будет использовать только 'here document' для полной транзакции:
lftp sftp://your.destination.sftp -u yourUser,YourPassword << fin
get yourfile
bye
fin
решение3
Вы можете попробовать приведенный ниже скрипт sftp, используя имя пользователя, пароль и destip.
#!/usr/bin/expect
spawn sftp username@destip
expect "username@destip's password:"
send "passwd\n"
expect "sftp>"
send "get filename\n"
expect "sftp>"
send "bye\n"
решение4
SFTP может работать без пароля, используя
pubkey auth = very safe strong encryption
kerberos = need server,encryption is not strong
В противном случае используйте ожидание отправки пароля, ВНИМАНИЕ! Пароль виден с помощью ps, поэтому это решение совершенно небезопасно.