Keyway broaching usually implies a nice, expensive - and easily broken - 'push' broach. Industrial convention is that broaches should be 'pulled' and that's OK if you have the wherewithal/space etc. My broaching is 'pushed' and the broaches I make myself. Push broaching is sort of asking for broken broaches, so it's a matter of support for the broach, more than anything else. My shop made broaches are simply bits of rectangular HSS - readily available - with teeth cut using a cutting disc in an angle grinder rigidly mounted and the work (the broach blank) is reciprocated underneath. Of course, the blank is packed or the grinder is lowered to have the tooth depth where you want it. The cutoff disc will do quite a good job and do it quite quickly. Once the teeth are cut. it's a fairly simple matter to 'angle' the disc to grind a little relief on the crown of each tooth. The teeth are not unlike those on a circular saw, but without the 'set'. Chip clearance isn't quite the same issue it is with a circular saw, so 'set' isn't necessary, nor is side rake. The 'support' comes from a broach 'body' of round MS, with a groove to suit the HSS broach blank milled along it. It will probably be a very deep groove, so it takes a,little more time to have it deep enough for the HSS blank to pretty much disappear. I found the easiest way to 'set' the depth of cut was to angle the groove bottom, so the broach will cut about .015" at each pass. A few .015" metal packing strips underneath the broach body, in the groove, will have pretty reasonable keyways. My 'broaches' are only about 6" long, so the depth of cut is a bit limited. I have broaches for 1/8", 3/16" and 1/4" and 3,4. 5 and 6mm and bodies of 12, 13, 14, 15, 16, 18, 19 and 20mm. The body 'fir' doesn't have to precisely suit the hole, so, for instance, 19mm is quite OK for 3/4"