我是UNix scipt和SFTP流程的新手。我需要编写一个KSH脚本,通过它我可以将文件传输到sftp服务器。我创建了SSH密钥对。我也开发了KSH代码。但是每当KSH脚本被其他ID执行时,它会提示输入密码,就像我执行密码时一样,即使这两个用户ID的组ID相同,也不要求任何密码。以下是我发送文件的部分
###################################################
# SFTP to MFT ---> SFTP to MFT ---> SFTP to MFT #
###################################################
# Execute SFTP command to PUT a file on MFT #
# $1 - SSH Private Key File #
# $2 - SFTP User ID @ MFT Server #
# $3 - Source Directory (to take files from) #
# $4 - MFT Directory (to place files into) #
# $5 - File to MPUT #
# $6 - MFT PWD #
###################################################
function sftpputtomft {
sftp -o identityfile=${1} ${2} >> $SFTP_LOG << ENDSFTP
lcd ${3}
cd ${4}
mput ${5}
bye
ENDSFTP
答案 0 :(得分:0)
OpemSSH将拒绝使用其他人可读的密钥。如果您尝试,您将得到类似的警告,如下所示。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/XXXXXXXX/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/XXXXXXXX/.ssh/id_rsa
希望这有帮助。