20102012 Ericsson AB. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ct_ssh A ct_ssh.xml
ct_ssh SSH/SFTP client module.

SSH/SFTP client module.

This module uses application SSH, which provides detailed information about, for example, functions, types, and options.

Argument Server in the SFTP functions is only to be used for SFTP sessions that have been started on existing SSH connections (that is, when the original connection type is ssh). Whenever the connection type is sftp, use the SSH connection reference only.

The following options are valid for specifying an SSH/SFTP connection (that is, can be used as configuration elements):

 [{ConnType, Addr},
  {port, Port},
  {user, UserName}
  {password, Pwd}
  {user_dir, String}
  {public_key_alg, PubKeyAlg}
  {connect_timeout, Timeout}
  {key_cb, KeyCallbackMod}]

ConnType = ssh | sftp.

For other types, see ssh:ssh(3).

All time-out parameters in ct_ssh functions are values in milliseconds.

Data Types connection() = handle() | target_name()

For target_name, see module ct.

handle() = handle()

Handle for a specific SSH/SFTP connection, see module ct.

ssh_sftp_return() = term()

Return value from an ssh:ssh_sftp function.

apread(SSH, Handle, Position, Length) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

apread(SSH, Server, Handle, Position, Length) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

apwrite(SSH, Handle, Position, Data) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

apwrite(SSH, Server, Handle, Position, Data) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

aread(SSH, Handle, Len) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

aread(SSH, Server, Handle, Len) -> Result For inforamtion and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

awrite(SSH, Handle, Data) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

awrite(SSH, Server, Handle, Data) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

close(SSH, Handle) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

close(SSH, Server, Handle) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

connect(KeyOrName) -> {ok, Handle} | {error, Reason} Equivalent to connect(KeyOrName, host, []).

Equivalent to ct_ssh:connect(KeyOrName, host, []).

connect(KeyOrName, ConnType) -> {ok, Handle} | {error, Reason} Equivalent to connect(KeyOrName, ConnType, []).

Equivalent to ct_ssh:connect(KeyOrName, ConnType, []).

connect(KeyOrName, ConnType, ExtraOpts) -> {ok, Handle} | {error, Reason} Opens an SSH or SFTP connection using the information associated with KeyOrName. KeyOrName = Key | Name Key = atom() Name = target_name() ConnType = ssh | sftp | host ExtraOpts = ssh_connect_options() Handle = handle() Reason = term()

Opens an SSH or SFTP connection using the information associated with KeyOrName.

If Name (an alias name for Key) is used to identify the connection, this name can be used as connection reference for subsequent calls. Only one open connection at a time associated with Name is possible. If Key is used, the returned handle must be used for subsequent calls (multiple connections can be opened using the configuration data specified by Key).

For information on how to create a new Name, see ct:require/2.

For target_name, see module ct.

ConnType always overrides the type specified in the address tuple in the configuration data (and in ExtraOpts). So it is possible to, for example, open an SFTP connection directly using data originally specifying an SSH connection. Value host means that the connection type specified by the host option (either in the configuration data or in ExtraOpts) is used.

ExtraOpts (optional) are extra SSH options to be added to the configuration data for KeyOrName. The extra options override any existing options with the same key in the configuration data. For details on valid SSH options, see application SSH.

del_dir(SSH, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

del_dir(SSH, Server, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

delete(SSH, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

delete(SSH, Server, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

disconnect(SSH) -> ok | {error, Reason} Closes an SSH/SFTP connection. SSH = connection() Reason = term()

Closes an SSH/SFTP connection.

exec(SSH, Command) -> {ok, Data} | {error, Reason} Equivalent to exec(SSH, Command, DefaultTimeout).

Equivalent to ct_ssh:exec(SSH, Command, DefaultTimeout).

exec(SSH, Command, Timeout) -> {ok, Data} | {error, Reason} Requests server to perform Command. SSH = connection() Command = string() Timeout = integer() Data = list() Reason = term()

Requests server to perform Command. A session channel is opened automatically for the request. Data is received from the server as a result of the command.

exec(SSH, ChannelId, Command, Timeout) -> {ok, Data} | {error, Reason} Requests server to perform Command. SSH = connection() ChannelId = integer() Command = string() Timeout = integer() Data = list() Reason = term()

Requests server to perform Command. A previously opened session channel is used for the request. Data is received from the server as a result of the command.

get_file_info(SSH, Handle) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

get_file_info(SSH, Server, Handle) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

list_dir(SSH, Path) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

list_dir(SSH, Server, Path) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

make_dir(SSH, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

make_dir(SSH, Server, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

make_symlink(SSH, Name, Target) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

make_symlink(SSH, Server, Name, Target) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

open(SSH, File, Mode) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

open(SSH, Server, File, Mode) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

opendir(SSH, Path) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

opendir(SSH, Server, Path) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

position(SSH, Handle, Location) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

position(SSH, Server, Handle, Location) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

pread(SSH, Handle, Position, Length) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

pread(SSH, Server, Handle, Position, Length) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

pwrite(SSH, Handle, Position, Data) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

pwrite(SSH, Server, Handle, Position, Data) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

read(SSH, Handle, Len) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

read(SSH, Server, Handle, Len) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

read_file(SSH, File) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

read_file(SSH, Server, File) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

read_file_info(SSH, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

read_file_info(SSH, Server, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

read_link(SSH, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

read_link(SSH, Server, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

read_link_info(SSH, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

read_link_info(SSH, Server, Name) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

receive_response(SSH, ChannelId) -> {ok, Data} | {error, Reason} Equivalent to receive_response(SSH, ChannelId, close).

Equivalent to ct_ssh:receive_response(SSH, ChannelId, close).

receive_response(SSH, ChannelId, End) -> {ok, Data} | {error, Reason} Equivalent to receive_response(SSH, ChannelId, End, DefaultTimeout).

Equivalent to ct_ssh:receive_response(SSH, ChannelId, End, DefaultTimeout).

receive_response(SSH, ChannelId, End, Timeout) -> {ok, Data} | {timeout, Data} | {error, Reason} Receives expected data from server on the specified session channel. SSH = connection() ChannelId = integer() End = Fun | close | timeout Timeout = integer() Data = list() Reason = term()

Receives expected data from server on the specified session channel.

If End == close, data is returned to the caller when the channel is closed by the server. If a time-out occurs before this happens, the function returns {timeout,Data} (where Data is the data received so far).

If End == timeout, a time-out is expected and {ok,Data} is returned both in the case of a time-out and when the channel is closed.

If End is a fun, this fun is called with one argument, the data value in a received ssh_cm message (see ssh:ssh_connection(3). The fun is to return either true to end the receiving operation (and have the so far collected data returned) or false to wait for more data from the server. Even if a fun is supplied, the function returns immediately if the server closes the channel).

rename(SSH, OldName, NewName) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

rename(SSH, Server, OldName, NewName) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

send(SSH, ChannelId, Data) -> ok | {error, Reason} Equivalent to send(SSH, ChannelId, 0, Data, DefaultTimeout).

Equivalent to ct_ssh:send(SSH, ChannelId, 0, Data, DefaultTimeout).

send(SSH, ChannelId, Data, Timeout) -> ok | {error, Reason} Equivalent to send(SSH, ChannelId, 0, Data, Timeout).

Equivalent to ct_ssh:send(SSH, ChannelId, 0, Data, Timeout).

send(SSH, ChannelId, Type, Data, Timeout) -> ok | {error, Reason} Sends data to server on specified session channel. SSH = connection() ChannelId = integer() Type = integer() Data = list() Timeout = integer() Reason = term()

Sends data to server on specified session channel.

send_and_receive(SSH, ChannelId, Data) -> {ok, Data} | {error, Reason} Equivalent to send_and_receive(SSH, ChannelId, Data, close).

Equivalent to ct_ssh:send_and_receive(SSH, ChannelId, Data, close).

send_and_receive(SSH, ChannelId, Data, End) -> {ok, Data} | {error, Reason} Equivalent to send_and_receive(SSH, ChannelId, 0, Data, End, DefaultTimeout).

Equivalent to ct_ssh;send_and_receive(SSH, ChannelId, 0, Data, End, DefaultTimeout).

send_and_receive(SSH, ChannelId, Data, End, Timeout) -> {ok, Data} | {error, Reason} Equivalent to send_and_receive(SSH, ChannelId, 0, Data, End, Timeout).

Equivalent to ct_ssh:send_and_receive(SSH, ChannelId, 0, Data, End, Timeout).

send_and_receive(SSH, ChannelId, Type, Data, End, Timeout) -> {ok, Data} | {error, Reason} Sends data to server on specified session channel and waits to receive the server response. SSH = connection() ChannelId = integer() Type = integer() Data = list() End = Fun | close | timeout Timeout = integer() Reason = term()

Sends data to server on specified session channel and waits to receive the server response.

For details on argument End, see ct_ssh:receive_response/4.

session_close(SSH, ChannelId) -> ok | {error, Reason} Closes an SSH session channel. SSH = connection() ChannelId = integer() Reason = term()

Closes an SSH session channel.

session_open(SSH) -> {ok, ChannelId} | {error, Reason} Equivalent to session_open(SSH, DefaultTimeout).

Equivalent to ct_ssh:session_open(SSH, DefaultTimeout).

session_open(SSH, Timeout) -> {ok, ChannelId} | {error, Reason} Opens a channel for an SSH session. SSH = connection() Timeout = integer() ChannelId = integer() Reason = term()

Opens a channel for an SSH session.

sftp_connect(SSH) -> {ok, Server} | {error, Reason} Starts an SFTP session on an already existing SSH connection. SSH = connection() Server = pid() Reason = term()

Starts an SFTP session on an already existing SSH connection. Server identifies the new session and must be specified whenever SFTP requests are to be sent.

subsystem(SSH, ChannelId, Subsystem) -> Status | {error, Reason} Equivalent to subsystem(SSH, ChannelId, Subsystem, DefaultTimeout).

Equivalent to ct_ssh:subsystem(SSH, ChannelId, Subsystem, DefaultTimeout).

subsystem(SSH, ChannelId, Subsystem, Timeout) -> Status | {error, Reason} Sends a request to execute a predefined subsystem. SSH = connection() ChannelId = integer() Subsystem = string() Timeout = integer() Status = success | failure Reason = term()

Sends a request to execute a predefined subsystem.

write(SSH, Handle, Data) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

write(SSH, Server, Handle, Data) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

write_file(SSH, File, Iolist) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

write_file(SSH, Server, File, Iolist) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

write_file_info(SSH, Name, Info) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).

write_file_info(SSH, Server, Name, Info) -> Result For information and other types, see ssh_sftp(3). SSH = connection() Result = ssh_sftp_return() | {error, Reason} Reason = term()

For information and other types, see ssh:ssh_sftp(3).