我正在用 bash 中的期望进行自动传递。代码是;
ssh-copy-id -i $SSH_KEY_PATH_PUB $REMOTE_HOST_USER@$REMOTE_HOST_IP (here asks pass)
VAR=$(expect -c"
expect "*?assword:*"
send "$REMOTE_HOST_PASSWD\r";
send -- "\r"
expect eof
")
echo "$VAR"
它仍然询问密码。这是什么问题
已解决:ssh-copy-id -i $SSH_KEY_PATH_PUB $REMOTE_HOST_USER@$REMOTE_HOST_IP 必须在期望块中;
spawn ssh-copy-id -i $SSH_KEY_PATH_PUB $REMOTE_HOST_USER@$REMOTE_HOST_IP
和线
send "$REMOTE_HOST_PASSWD\r";
一定是
send \"$REMOTE_HOST_PASSWD\r\";