In a non-hierarch environment when you run updatenode -k to a compute node, it run the remoteshell,servicenode postscript on the compute node.
For example for the ngpcmm01node01 compute node
p7hv16s32p05: Internal call command: xdsh ngpcmm01node01 -s -v -e /install/postscripts/xcatdsklspost 5 -m x.xx.xx.xx 'remoteshell,servicenode'. Since compute node are not required to have perl installed, servicenode will just fail or there is a check in the servicenode postscript to exit if it is not a servicenode .
In a hierarch environement. It runs the command on the service node but never runs the remoteshell command on the compute node to setup host ssh keys. For example where rhsn is a service node for cn2
updatenode cn2 -k -V
hpcrhmn: Internal call command: xdsh rhsn -s -v -e /install/postscripts/xcatdsklspost 5 -m 10.6.0.1 'remoteshell,servicenode'
I tried using the following to transfer the ssh hostkeys to the node, but if the /etc/ssh directory is empty or contains no keys, I get the following, so it would not be much good to recover keys, maybe just to replace them.
rhsn: Internal call command: xdsh cn2 -s -v -e /install/postscripts/xcatdsklspost 1 -m 10.16.0.103 'remoteshell'
Running command on rhsn: /opt/xcat/bin/pping cn2 2>&1
cn2: Read from socket failed: Connection reset by peer
Bruce is suggesting that we change for the compute node to have updatenode -k run xdsh -K the way it does not and an xdcp to copy the hostkeys to the nodes and not use remote shell at all.