code: func exchangeVersions(rw io.ReadWriter, versionLine []byte) (them []byte, err error) {
  	// Contrary to the RFC, we do not ignore lines that don't
  	// start with "SSH-2.0-" to make the library usable with
  	// nonconforming servers.
  	for _, c := range versionLine {
  		// The spec disallows non US-ASCII chars, and
  		// specifically forbids null chars.
  		if c < 32 {
  			return nil, errors.New("ssh: junk character in version line")
  		}
  	}
  	if _, err = rw.Write(append(versionLine, '\r', '\n')); err != nil {
  		return
  	}
  
  	them, err = readVersion(rw)
  	return them, err
  }
docs: // Sends and receives a version line.  The versionLine string should
  // be US ASCII, start with "SSH-2.0-", and should not include a
  // newline. exchangeVersions returns the other side's version line.