SSH Frequently Asked Questions
What's the difference between versions 1 and 2 of the SSH protocol?
SSH protocol, version 2 | SSH protocol, version 1 |
Separate transport, authentication, and connection protocols | One monolithic protocol |
Strong cryptographic integrity check | Weak CRC-32 integrity check; admits an insertion attack in conjunction with some bulk ciphers. |
Supports password changing | N/A |
Any number of session channels per connection (including none) | Exactly one session channel per connection (requires issuing a remote command even when you don't want one) |
Full negotiation of modular cryptographic and compression algorithms, including bulk encryption, MAC, and public-key | Negotiates only the bulk cipher; all others are fixed |
Encryption, MAC, and compression are negotiated separately for each direction, with independent keys | The same algorithms and keys are used in both directions (although RC4 uses separate keys, since the algorithm's design demands that keys not be reused) |
Extensible algorithm/protocol naming scheme allows local extensions while preserving interoperability | Fixed encoding precludes interoperable additions |
User authentication methods:
|
Supports a wider variety:
|
Use of Diffie-Hellman key agreement removes the need for a server key | Server key used for forward secrecy on the session key |
Supports public-key certificates | N/A |
User authentication exchange is more flexible, and allows requiring multiple forms of authentication for access. | Allows for exactly one form of authentication per session. |
hostbased authentication is in principle independent of client network address, and so can work with proxying, mobile clients, etc. (though this is not currently implemented). | RhostsRSA authentication is effectively tied to the client host address, limiting its usefulness. |
periodic replacement of session keys | N/A |
* Not all SSH-2 implementations support RSA yet for user authentication or host keys, since it's a relatively recent addition. The RSA algorithm was originally omitted from the protocol due to its patent status, but that patent has since expired.