SCP/Shell Tab (Login Dialog)

SCP/Shell tab allows user to configure shell specific options. Mostly it helps WinSCP to modify remote environment to match its requirements. The options are mainly used when working with SCP protocol. Even if you are using SFTP protocol, some of the options are made available for you, in case are using some feature that require separate shell session.

You need to check Advanced options to reveal the tab.

Shell

Use the Shell option to specify what shell WinSCP will use. The bash shell is recommended for working with WinSCP. If your default shell does not work with WinSCP, you can specify another shell. Typing the full path (e.g. /bin/bash or /usr/local/bin/bash) is recommended. You can also make use of the option to alter session startup. For example to change the user after login (known as su) (see note 1). The command to start shell is interpreted by the SSH server, so the syntax can change with the server (see note 2).

WinSCP needs to know what environment variable contains exit code of the last command. By default it tries to autodetect that. However the autodetection can fail and also slows down login. You may specify the variable directly instead in Return code variable box.

Directory listing

Use the Listing command to change shell command, WinSCP uses to list directory contents. Particularly if your shell does not print group name in directory listing by default, use ls -gla to enforce it.

When the Ignore LS warnings checkbox is ticked, WinSCP will ignore any error messages printed by the ls command as long as it produces some regular output too. It also makes WinSCP ignore exit code 1 of the command. The option was added primarily to override pagefile.sys access-error produced by OpenSSH for Windows whenever root directory was opened. However it may be useful even in other situations.

The Try to get full timestamp makes WinSCP attempt to use --full-time option for ls command. It is particularly useful when you want to use some synchronization command, for what you need precise timestamps. When it is ticked, WinSCP will add the option to the first ls command it issues. When the (first) command fails for whatever reason, WinSCP will stop using the option for the whole session. However in some cases WinSCP may fail to detect that the command failed. Then you need to disable the feature manually.

Other Options

When Lookup user groups is ticked, WinSCP will use groups command on start-up to list groups the user belongs too. It will then offer the list on Properties dialog to allow user select the group instead of typing it.

During WinSCP start up, you may receive an error indicating a problem with the groups command. Untick the Lookup user groups box. More than likely your Linux environment doesn't have the groups command available.

On start-up WinSCP will by default clear all aliases on commands it uses. This is done to avoid unexpected behaviour (e.g. alias rm to rm -i). If there are no aliases influencing command behaviour, this feature can be disabled by unticking Clear aliases.

WinSCP also clears set of environment variables know to influence the format of directory listing. These are: LANG, LANGUAGE, LC_CTYPE, LC_COLLATE, LC_MONETARY, LC_NUMERIC, LC_TIME, LC_MESSAGES and LC_ALL. If no such variable is set, untick Clear national variables. This setting speeds up the login process.

WinSCP uses scp command to perform the transfer. On some SSH servers, particularly ssh.com, the scp may be a link to scp2 command. The scp2 is in fact SFTP server, that WinSCP cannot talk to in SCP mode. Check Use scp2 with scp1 compat. to make WinSCP try to force the scp command to use really the SCP protocol (using -1 option). Note that if the server supports scp2, it probably supports SFTP protocol too.

Notes:

1) See FAQ for details.

2) Typically it is regular shell command interpreted by the default shell of user.