Although it would be nice if the stack confirmed, I bet that the server uses the RSA master key for authentication and mistakenly truncates, leading zero in rare cases.
RSA signature values ββ(and encrypted values ββas well) defined by PKCS # 1 that SSH uses (like many other things, including SSL) should be encoded as a fixed-length octet string "k" equal to the length required to encode the module, or informally "the same size as the module." However, since the underlying mathematical value is a large non-negative integer (unsigned), in particular modexp (s, d, n), historically some implementations are omitted by leading zero octets - an omission that is valid when processing the value as an integer - - the result is an encoded value that is sometimes shorter than it should be.
The RSA signature (or encrypted) is actually a uniform random number in (1, n). Thus, when the RSA key used by the server has a round binary size, for example 1024, this trimming will be approximately 1 to 200 times randomly , or 400 if truncated as a signed number.
I did not know, but when testing, I confirm that (Oracle) Java 6 really takes such a βshortβ value for Signature type RSA or as SHA1withRSA actually used here, both of which imply PKCS1-v1_5, but Java 7 and 8 throw an exception which you saw. OTOH, both OpenSSH and PuTTY (also used by WinSCP and FileZilla) accept "short" values, always sending the correct length values; this post-Elian behavior can make it difficult to detect when a peer partner is behaving so badly. (Note: I checked OpenSSH 5.5 and 7.3, the oldest and newest of them at my fingertips, but only the current PuTTY 0.67, because everything I keep on the network.)
You can try to tell the server software developer of the published standards, but this may not be useful. You might ask jcraft about a special occasion; they already have logic in the DSA and ECDSA cases for mpint / ASN.1, which, as I can argue, are equally ugly. Or , if the server has another (useful) key, request by setting "server_host_key" to NOT include ssh-rsa - the easiest way is to get the existing / default list, split, delete "ssh-rsa" (and check not empty) and reunite instead of confusing your users and / or (co) maintainers by listing specific algorithms today.