Improve company productivity with a Business Account.Sign Up

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 682
  • Last Modified:

sftp client authentication methods

I'm trying to connect to an sftp server, but am unable to do so through a bash script.  the server is expecting ssh key authentication by default and i'd like to do UserName/Password auth.  Is there a way i can specify the type of auth i want to use and if so what are some examples?  Such as:
sftp -oAuthenticationMethod=Password
sftp -oAuthenticationMethod=SSH_KEY

I've tried using the -o options, but am not sure i got the syntax right.
also, i interactivly try and connect to the sftp server it will prompt me for a password and when i enter it, it's just fine.
i'm running the bash script on Linux machine which is trying to connect to a sftp server running on windows machine.
  • 3
  • 3
  • 3
6 Solutions
Just to be sure: you're not confused between sftp and ftps ?
- sftp is "FTP over SSH", it requires a SSH server
- ftps is "secured FTP", it requires a FTP server with SSL

What's your server software on Windows ?
the only I know to overcome this (avoid the interactive questions) is to use an answer file with the commands in it, as argument to ftp-s filename,
or use a .netrc file in your account root folder to store the account defaults
nohurtAuthor Commented:
i'mtrying to connect to a partner who is hosting the sftp server on windows.  i'm not sure what server they are running.  they have asked that i connect to them using "sftp".  When i do that interactively from command line on a linux box, the sftp server prompts me for my password, i enter it and all is fine.  When i try and connect using (through a bash script):
expect << 'END' 2>&1 | tee -a $LogFile
set timeout 5
spawn sftp $env(UserID)@$env(HostToConnectTo)
expect "'s password: "
send -- "$env(Password) \r"
expect "sftp> "
send -- "cd $env(OutPutDir) \r"
expect "sftp> "
send -- "ls -l ../ \r"
expect "sftp> "
send "bye \r"
The partner has not "White listed" my ssh key on their server, so it doesn't work.  I would like to know if there is an option for sftp so that i can be very specific on sftp command line the use of authentication (password or ssh key).
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

have you tried the old URL method:
or removing the password: mention, entering the password strait away after the login line? (I do that on ftp)
foud this also:
sftp [-1vC] [-A Password] [-b batchfile] [-L logfilename] [-osshopt=value] [user@]host[:file [file]]

The host must be given on the command line. The current interactive username will be used unless a user id is passed on the command line. This is done by adding the desired username to the hostname with the @ symbol. For example to connect to sftpserver as administrator, connect with

sftp administrator@sftpserver


 use the SSH1 protocol
 verbose mode for debugging
 use compression
A Password
 use password to logon to sftp server
b batchfile
 automation file - list desired commands to process after connected
L logfilename
 allows commands and responses to be logged to file logfilename
o sshoptions
 ssh client options
If keyauthentication is enabled, it should work without asking anything.
Maybe try with scp. Sftp should be used as a ftp client, I mean : browsing directories and so on.
If you just want to transfer files over SSH, scp sound better:

scp user@host:/some/file some_local_destination


scp something_local user@host:/something

You can use "-r" for recurse and so on

AND: are you sure you public key is in the authorized_keys on server's side? If not, you might add it manually in a regular ssh session.
nohurtAuthor Commented:
my authorized_key is in the file. If i "sftp" i get in just fine and am at the sftp> prompt.  But if i try and ssh or scp a file, it just hangs.  i'm not sure what's going on.
authorized_key => authorized_keys

Please, copy/paste the ssh and scp command you enter
nohurtAuthor Commented:
it turns out that the ftp server i connect to has to accept my ssh key on their side manally in the sftp server.  i am not allowed to put a public ssh key on their server.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 3
  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now