## 1 SSH Release Notes

This document describes the changes made to the SSH system from version to version. The intention of this document is to list all incompatibilities as well as all enhancements and bugfixes for every release of SSH. Each release of SSH thus constitutes one section in this document. The title of each section is the version number of SSH.

### 1.1 Ssh 1.0

#### 1.1.1 Fixed Bugs and Malfunctions

- Removed some special handling of prompts that made ssh behave differently than openssh.
  Own Id: OTP-7485 Aux Id: seq11025
- Bug in encoding of pty opts has been fixed.
  Own Id: OTP-7504

#### 1.1.2 Improvements and New Features

- The architecture of the ssh processes has been reconstructed to fit in a supervision tree as to become a real OTP application and benefit from this when starting and stopping.
  Own Id: OTP-7356 Aux Id: seq10899
- Support for pty option echo off added. Requires kernel from R12B-4.
  *** POTENTIAL INCOMPATIBILITY ***
  Own Id: OTP-7502 Aux Id: seq10959
- The ssh API has been enhanced a lot of old API functions has become deprecated.
  Own Id: OTP-7503

### 1.2 Ssh 0.9.9.6

#### 1.2.1 Improvements and New Features

- Updated asn1 file due to change in the asn1 compiler. This has no semantical effect on the ssh application.
  Own Id: OTP-7246
- Allows for the option {fd, FD} in listen and connect calls. The option is passed on to gen_tcp:listen and gen_tcp:connect
  Own Id: OTP-7247

### 1.3 Ssh 0.9.9.5

#### 1.3.1 Fixed Bugs and Malfunctions

- Putty version 0.60 sends ignore messages, which hanged the OTP ssh server.
  Own Id: OTP-7076
- ssh_cm hanged when connection was closed during handshake. (Triggered by putty 0.60 client.)
  Own Id: OTP-7089
- Fixed crash in server when receiving an empty ignore-msg. (From the putty 0.60 client.)
  Own Id: OTP-7135

#### 1.3.2 Improvements and New Features

- Now uses the base 64 encode/decode function in stdlib.
  Own Id: OTP-6486
- Removed runtime dependency on asn1.
  Own Id: OTP-6570
- Documentation update of ssh.
  Own Id: OTP-7063 Aux Id: seq10789
- Same listener is used for both sshd and sftpd. Previously the sftpd server had to be run on a separate port, now the sshd listener will start an sftpd server when an sftp client connects.
  Own Id: OTP-7090 Aux Id: seq10675
- Kebord-interactive support, according to rfc 4256, has been added to the ssh client. Also the option quiet_mode has been added so that unwanted banners may be suppressed.
  Own Id: OTP-7106 Aux Id: seq10841

### 1.4 Ssh 0.9.9.4

#### 1.4.1 Improvements and New Features

- [sftpd] - Root parameter now behaves as expected, instead of making sftpd malfunction.
  Own Id: OTP-7057 Aux Id: seq10830

### 1.5 Ssh 0.9.9.3

#### 1.5.1 Fixed Bugs and Malfunctions

- The sftp-server could crash if a "ls" was done on the client, and a file was removed while ssh_sftpd:list_dir was reading the directory, an error code from read_file_info wasn't handled properly. This fix makes ls return an error code instead.
  Own Id: OTP-6854 Aux Id: seq10740
- Fixed bugs in prompting in ssl_cli. Prompts like > were written as À>. Also, newlines and returns was removed.
  Own Id: OTP-6917 Aux Id: seq10773

#### 1.5.2 Improvements and New Features

- [sftpd] - New option "root" to set the root of the sftp-server and the callback module for file handling now has a state parameter.
  Own Id: OTP-7075 Aux Id: seq10675

### 1.6 Ssh 0.9.9.2

#### 1.6.1 Better error-handling in ssh_sshd:listen

- The caller was hanged when listening with ssh_sshd:listen (or ssh_sftpd:listen) on a port and IP already in use. Now an error is returned instead.
  Own Id: OTP-6727

#### 1.6.2 Fix in ssh_sftpd

- Cd ../.. didn't work when connecting to a ssh_sftpd server.
  Own Id: OTP-6727

### 1.7 Ssh 0.9.9.1

#### 1.7.1 Minor Makefile changes

- Removed use of erl_flags from Makefile.
  Own Id: OTP-6689

### 1.8 Ssh 0.9.9

#### 1.8.1 Fixed Bugs and Malfunctions

- A race condition that could make the server crash if a client sent a SSH_MSG_USERAUTH_REQUEST packet immediately after its SSH_MSG_SERVICE_REQUEST, is removed.
  Own Id: OTP-6379 Aux Id: seq10523

### 1.9 Ssh 0.9.8

#### 1.9.1 Fixed Bugs and Malfunctions

- Corrected minor bugs and removed dead code found by dialyzer.
  Own Id: OTP-6524

### 1.10 Ssh 0.9.7

#### 1.10.1 Fixed Bugs and Malfunctions

- [sftp] - The function ssh_sftp:make_symlink/3 was not fully implemented.
  Own Id: OTP-6446
- [ssh] - An internal value was, due to a bug, always set to undefined even when it was not, this could lead to connections being wrongly refused.
  Own Id: OTP-6450
- A pattern matching was missing "/binary" resulting in that the internal function ssh_xfer:decode_acl/2 did not work as expected.
  Own Id: OTP-6458
- [sftp] - read_link/2 did not return the documented value
  Own Id: OTP-6471
- Removed debugg printouts from ssh_cli.erl
  Own Id: OTP-6483
- [sftp, ssh] - The connection timeout was overridden by an internal gen_server default timeout.
  Own Id: OTP-6488 Aux Id: seq10569

### 1.11 Ssh 0.9.6

#### 1.11.1 Fixed Bugs and Malfunctions

- Removed debug printout from production code.
  Own Id: OTP-6348 Aux Id: seq10510
- [sftpd] - When the sftp client ends the session the server will now behave correctly and not leave the client hanging.
  Own Id: OTP-6349 Aux Id: seq10510
- [sftpd] - No longer used files were not closed until the session was ended.
  Own Id: OTP-6350 Aux Id: seq10514
- [sftpd] - File rename requests sent by sftp version 3 clients were not handled.
  Own Id: OTP-6352 Aux Id: seq10513
- [sftpd] - Request that did not fit into one ssh message were not handled.
  Own Id: OTP-6353 Aux Id: seq10515
- Removed error logging of auth method none, as this is not an error but rather a feature, that is used to get initial information from the server.
  Own Id: OTP-6414

#### 1.11.2 Improvements and New Features

- [sftpd] - Added new option to specify a callback module for the sftpd-server file handling. The default callback module uses file and filelib.
  Own Id: OTP-6356 Aux Id: seq10519

### 1.12 Ssh 0.9.5

#### 1.12.1 Fixed Bugs and Malfunctions

- The data window in SSH wasn't resized in the ssh_cli receive data, this made the ssh_cli-server hang if more than 64K data was received at one time. The option tcp_nodelay was added, for nodelay in tcp connections.
  Own Id: OTP-6231

### 1.13 SSH 0.9.4

#### 1.13.1 Reported Fixed Bugs and Malfunctions

- Unnecessary explicit start of crypto application in ssh application. This has been removed. The app-file specifies that ssh depends on the crypto app. This is enough. See also the ssh module.
  Also changed some error reports to info reports.
  Own Id: OTP-6183
  Aux Id: Seq 10383

### 1.14 SSH 0.9.3

#### 1.14.1 Improvements and New Features

- Added way for cli to get peer name
  Own Id: OTP-6138

### 1.15 SSH 0.9.2

#### 1.15.1 Improvements and New Features

- Added some options to listen
  Own Id: OTP-6070

### 1.16 SSH 0.9.1

#### 1.16.1 Ssh 0.9.9.4

##### 1.16.1.1 Improvements and New Features

- [sftpd] - Root parameter now behaves as expected, instead of making sftpd malfunction.
  Own Id: OTP-7057 Aux Id: seq10830

#### 1.16.2 Ssh 0.9.9.3

##### 1.16.2.1 Fixed Bugs and Malfunctions

- The sftp-server could crash if a "ls" was done on the client, and a file was removed while ssh_sftpd:list_dir was reading the directory, an error code from read_file_info wasn't handled properly. This fix makes ls return an error code instead.
  Own Id: OTP-6854 Aux Id: seq10740
- Fixed bugs in prompting in ssl_cli. Prompts like > were written as À>. Also, newlines and returns was removed.
  Own Id: OTP-6917 Aux Id: seq10773

##### 1.16.2.2 Improvements and New Features

- [sftpd] - New option "root" to set the root of the sftp-server and the callback module for file handling now has a state parameter.
  Own Id: OTP-7075 Aux Id: seq10675

#### 1.16.3 Ssh 0.9.9.2

##### 1.16.3.1 Better error-handling in ssh_sshd:listen

- The caller was hanged when listening with ssh_sshd:listen (or ssh_sftpd:listen) on a port and IP already in use. Now an error is returned instead.
  Own Id: OTP-6727

##### 1.16.3.2 Fix in ssh_sftpd

- Cd ../.. didn't work when connecting to a ssh_sftpd server.
  Own Id: OTP-6727

#### 1.16.4 Ssh 0.9.9.1

##### 1.16.4.1 Minor Makefile changes

- Removed use of erl_flags from Makefile.
  Own Id: OTP-6689

#### 1.16.5 Ssh 0.9.9

##### 1.16.5.1 Fixed Bugs and Malfunctions

- A race condition that could make the server crash if a client sent a SSH_MSG_USERAUTH_REQUEST packet immediately after its SSH_MSG_SERVICE_REQUEST, is removed.
  Own Id: OTP-6379 Aux Id: seq10523

#### 1.16.6 Ssh 0.9.8

##### 1.16.6.1 Fixed Bugs and Malfunctions

- Corrected minor bugs and removed dead code found by dialyzer.
  Own Id: OTP-6524

#### 1.16.7 Ssh 0.9.7

##### 1.16.7.1 Fixed Bugs and Malfunctions

- [sftp] - The function ssh_sftp:make_symlink/3 was not fully implemented.
  Own Id: OTP-6446
- [ssh] - An internal value was, due to a bug, always set to undefined even when it was not, this could lead to connections being wrongly refused.
  Own Id: OTP-6450
- A pattern matching was missing "/binary" resulting in that the internal function ssh_xfer:decode_acl/2 did not work as expected.
  Own Id: OTP-6458
- [sftp] - read_link/2 did not return the documented value
  Own Id: OTP-6471
- Removed debugg printouts from ssh_cli.erl
  Own Id: OTP-6483
- [sftp, ssh] - The connection timeout was overridden by an internal gen_server default timeout.
  Own Id: OTP-6488 Aux Id: seq10569

#### 1.16.8 Ssh 0.9.6

##### 1.16.8.1 Fixed Bugs and Malfunctions

- Removed debug printout from production code.
  Own Id: OTP-6348 Aux Id: seq10510
- [sftpd] - When the sftp client ends the session the server will now behave correctly and not leave the client hanging.
  Own Id: OTP-6349 Aux Id: seq10510
- [sftpd] - No longer used files were not closed until the session was ended.
  Own Id: OTP-6350 Aux Id: seq10514
- [sftpd] - File rename requests sent by sftp version 3 clients were not handled.
  Own Id: OTP-6352 Aux Id: seq10513
- [sftpd] - Request that did not fit into one ssh message were not handled.
  Own Id: OTP-6353 Aux Id: seq10515
- Removed error logging of auth method none, as this is not an error but rather a feature, that is used to get initial information from the server.
  Own Id: OTP-6414

##### 1.16.8.2 Improvements and New Features

- [sftpd] - Added new option to specify a callback module for the sftpd-server file handling. The default callback module uses file and filelib.
  Own Id: OTP-6356 Aux Id: seq10519

#### 1.16.9 Ssh 0.9.5

##### 1.16.9.1 Fixed Bugs and Malfunctions

- The data window in SSH wasn't resized in the ssh_cli receive data, this made the ssh_cli-server hang if more than 64K data was received at one time. The option tcp_nodelay was added, for nodelay in tcp connections.
  Own Id: OTP-6231

#### 1.16.10 SSH 0.9.4

##### 1.16.10.1 Reported Fixed Bugs and Malfunctions

- Unnecessary explicit start of crypto application in ssh application. This has been removed. The app-file specifies that ssh depends on the crypto app. This is enough. See also the ssh module.
  Also changed some error reports to info reports.
  Own Id: OTP-6183
  Aux Id: Seq 10383

#### 1.16.11 SSH 0.9.3

##### 1.16.11.1 Improvements and New Features

- Added way for cli to get peer name
  Own Id: OTP-6138

#### 1.16.12 SSH 0.9.2

##### 1.16.12.1 Improvements and New Features

- Added some options to listen
  Own Id: OTP-6070

#### 1.16.13 SSH 0.9.1

##### 1.16.13.1 Improvements and New Features

- Fixes in ssh_sftp, changes of timeout handling, expand_fun moved to io:setopts
  Own Id: OTP-5877 Aux Id: OTP-5781

#### 1.16.14 SSH 0.9

##### 1.16.14.1 Improvements and New Features

- The previously undocumented and UNSUPPORTED ssh application has been updated and documented. This release of the ssh application is still considered to be a beta release and (if necessary) there could still be changes in its API before it reaches 1.0.
  Also, more cryptographic algorithms have been added to the crypto application.
  *** POTENTIAL INCOMPATIBILITY ***
  Own Id: OTP-5631

ssh 1.0
Copyright © 1991-2008 Ericsson AB