The difference between "shy" and "ashamed"
There is a big difference. To be shy means timid and reserved in the company of others, while ashamed means to feel a sense of shame about oneself or something one did.
NOAD:
shy 1 | sh ī| adjective ( shyer , shyest ) 1 being reserved or having or showing nervousness or timidity in the company of other people : I was pretty shy at school | a shy smile. • [ predic. ] ( shy about) slow or reluctant to do (something) : she has never been shy about discussing her efforts to raise aesthetic standards. • [in combination ] having a dislike of or aversion to a specified thing : they were a little camera-shy.
ashamed |əˈ sh āmd| adjective [ predic. ] embarrassed or feeling guilt because of something one has done or a characteristic one has : you should be ashamed of yourself | [with clause ] she felt ashamed that she had hit him.
"...shy to tell the truth", doesn't seem right to me. I'd be more inclined to use, "...shy about telling the truth". I think that also makes the difference between "shy" and "ashamed" a little more clear too.