#1) The first thing you need to do is start ignoring the dog and stop speaking to the dog when they do jump. This is only teaching the dog that jumping makes you speak. Soon, your dog will start to make the connection....Dog jumps, person speaks. Dog jumping = I get attention....Oooh, I love jumping.
#2) Do not push or knee your dog for jumping up. Remember, at some point, you invited your dog up and you liked it. Your dog doesn't know your intentions are to keep them off of you. You will confuse your dog heavily for allowing them to jump as a puppy and then start kneeing them or pushing them off when they get big enough that it starts hurting when they jump. You may even cause your dog to be aggressive this way by being so unpredictable.
#3) Teach your dog that they will not get any attention until they sit when they approach you. Obviously you need to capture sits with your dog and know that your dog can sit, WITHOUT being asked verbally when they approach you before starting the exercises in the video below.
#4) Teach your dog to sit when they greet you in various situations so that your dog is fluent in this behavior and it isn't an unreliable behavior before deeming this behavior complete...i.e., the dog may sit or the dog may jump when they approach you..that is what I mean by the dog being unreliable...Unreliability is what you will get if you don't teach this behavior in different situations. The video below shows all the different ways, I teach sit to greets to my clients.