SFTP scripting - help required

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting SFTP scripting - help required
# 1  
Old 09-25-2007
SFTP scripting - help required

Hi all, First post so go easy guys.......

I've seen this asked before on some other forums but never properly/fully answered.

My problem involves the automation of an SFTP script sending from F-Secure (ssh2) HP-UX, to Windows FTP server (ssh2) running VShell. We've set up SSH keys but while they do authenticate when I connect it drops immediately saying that "user has no roots specifed". Strangely this error does not occur when authenticating using the password.

However, this is not my problem. Assuming that SSH keys can not be used (wether there is a solution or not), is there any way to include the password as an argument in an SFTP script ?
I've attempted to include the password in a batchfile (running sftp -B), without success.

sftp -B /dev/stdin remoteuser@remotehost <<-EOF
put $FILE

SCP will also not work because (I think) the remote username has a backslash in it e.g. abcd\b0bbins . The error returned here says "invalid username abcd\b0bbins" and drops connection.

Is there any solution without instaling 'expect' or similar

Thanks in advance
# 2  
Old 09-25-2007
No. You are not supposed to be able to enter the password through a script into ssh/sftp/scp.

If you do want to do this without any user interaction, you should setup key-based authentication.
# 3  
Old 09-26-2007
blowtorch is spot on.

The only time you'd ever have needed to use the password is when you initially establish your SFTP connection manually with the other host. After and using key-based authentication; you'd use something like ...
  sftp -v -o IdentityFile=${IdentityFile} \
       -b ${SFTP_BATCH_FILE} \
       ${USRID}@${IP_OR_DNS}:${REMOTE_DIR} 2>&1 | tee -a ${SFTPLOG}

Incidently, using the -B was in error, -B specifies the buffer size. Lower-case -b is used when you have a batch-file.

Helps to keep -v included, it raises the loggin level and helps when trying to determine why things don't go as expected.

You'll never be able to perform what you are trying to do autonomously without key-based authentication. It's not that hard to setup, just requires a bit of reading and small amount of trial and error. Tip - Don't try establishing on LIVE or Production servers until you have a grasp of what you need to do. I hate seeing things go pear-shaped in Production. Smilie

HTH, let us know how you go. Smilie
# 4  
Old 09-27-2007
Thanks for the reply guys.

(In F-secure sftp -B specifies batch mode while -b specifies buffer size. Also -D n is used to switch on debug. F-Secure SSH uses the standard -v for verbose mode)

I'm pretty comfortable with SSH keys for Unix. However we connect from Unix to a Windows server that drops us on to a share drive - While SSH authenticates, it drops immediately (This does not happen when dropping locally on to the Windows machine with a different user). Not being experienced in SSH for windows - I wondered if there was a way around this using the password in a script. This is now by-the-by as we've implemented other methods (Sterling Commerce's ConnectSmilieirect)

I now have a further problem with SFTP (where keys are working). Again from Unix to Windows I do;

sftp remoteuser@remotehost
sftp> put testfile
./testfile (dest) : permission denied

There shouldn't be any error with permissions as when connecting via FTP to the same host as the same user I can write a file fine.

Anyone got any ideas ? I'm seriously considering training a carrier pigeon to deliver these files !
# 5  
Old 09-27-2007
Possibly drivel

This may well be very off track but I have always had problems ftping *to* windows.
Are you able to ftp *from* windows to Unix and then pulling the files? I have always had much better success going this way.
Apologies if this is simply not an option for you - it is just an idea.
# 6  
Old 09-27-2007
Have you checked the error log files on both ends to see if you can find out what the problem might be? Also I would avoid the passwd in a file/script for security reasons. Even if its a jailed generic user with limited permissions its still not a good practice.

I would verify both ends have the SSH services configured correctly and that I don't have any errors in my log files while the service is running or while connecting/transferring files.

I would then check the Windows user account that I am using with the login name and verify the permissions are right. I would also check the event viewer for errors tied to that user account.

I would then get your keys working on both ends. See if you can use keys to authenticate to the UNIX host from Windows.

I would setup a scheduled task on the Windows host to sftp using key-authentication to the UNIX host and put the files before I would go the passwd in a file route.

Good luck!
# 7  
Old 09-27-2007
Thanks Guys,

SSH keys are working fine in both directions. It's just the put command that I can't get to work (unix to windows).
One solution may be to invoke a 'get' script on the NT box - However they'd have to poll our unix directory constantly (due to the nature of the project) and that would involve a lot of SSH traffic on our unix box.

The strange thing is that I can write files via FTP, and in SFTP i can also mkdir's on the remote NT box (just can't write/copy/put a file)
Somebody here has suggested it may a problem "emulating the home directory and permissions on the window OS", and that the easiest way to resolve would be to place the remote user in the administartors group.
This is something I have to look in to.

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell scripting help required

I have a shell script which calls a sql script. But in the output file I'm getting an additional '^L' character. Please advise how this is to be handled. spool /opt/oracle/DART/out/Indx_rebuild.out SET SERVEROUTPUT ON SET VERIFY OFF SET HEADING OFF SET NEWPAGE NONE SELECT 'ALTER INDEX '||... (2 Replies)
Discussion started by: narayanv
2 Replies

2. Shell Programming and Scripting

Required help in shell scripting

Iam new to shell scripting,i have a text file in my $home directory mentioned below. 201249_BAN_EXCL.TXT I need to refer the above file in my automated script but the number 201249 used to change every week.How can i refer to this file everyt time without renaming it manually? Thanks in... (7 Replies)
Discussion started by: Jroyal
7 Replies

3. Shell Programming and Scripting

Little scripting help required.

Hi , I need little help regarding my script. I have a file called abc which looks below. Rohan 12 Rakesh 23 Ajay 25 Another file looks like this (xyz). Mumbai Delhi Madras How would i add column mentioned in second file so that the file looks as below. Rohan 12 Mumbai... (2 Replies)
Discussion started by: pinga123
2 Replies

4. Solaris

Required UNIX shell scripting material

As I am new in UNIX , and I want to learn UNIX shell scripting. where shall I get material for Scripting ( For basics fundamentals and production environmental scripts) Kindly provide me ...................... (7 Replies)
Discussion started by: sunray
7 Replies

5. Shell Programming and Scripting

Help Required in shell scripting

Hi, I am new to Unix shell scripting.I have a requirement where I have to search for a particular file in a Unix directory based on some criterian of the content of the file.Actually there would be two files with same name and then I have zip them together and stoe in the same directory. As... (1 Reply)
Discussion started by: Kunal Banerjee
1 Replies

6. Shell Programming and Scripting

Help required with formatting in scripting

Hi Friends, I need to write a script which reads the file and prints them horizontally. For example, the file contains something like x1 x2 x3 x4 x5 my script reads this file as "for i in `cat filename`", but I need an output something like "config file = x1.ccfg,... (3 Replies)
Discussion started by: dineeshkg
3 Replies

7. Shell Programming and Scripting

Sftp scripting

Dear All, I have script that get the files from sFtp server to Unix server. The script is below. -- Batch File (mybatch) cd Output get abc123.csv in/abc123.csv get def456.csv in/def456.csv get ghi789.csv in/ghi789.csv bye -- Script File sftp -b mybatch xyz@ >... (1 Reply)
Discussion started by: samrio
1 Replies

8. Shell Programming and Scripting

Help required on scripting the rm -f command

When i execute rm -f $1 via a script file named rmf, it is not deleting all the files, say starting with "sec". i have execute rmf for many times to remove all the occurrences... $rmf sec* - this should delete all files starting with sec, but not. The rm -f sec* is working fine. kindly help... (3 Replies)
Discussion started by: frozensmilz
3 Replies

9. UNIX for Dummies Questions & Answers

Help required on expect scripting

I am trying to write an expect script for remote server login. At some point of time I need to telnet based on the output of grep command. Based on the output I need to select the ip address of the server. How can I write an expect script for the same. The output of the grep command is as follows:... (1 Reply)
Discussion started by: ayyappakumar
1 Replies

10. Shell Programming and Scripting

sftp scripting

I am totally new to this forum so if I am asking this and it has already been asked I apologize, but I have yet to have time to figure out how to search effectively for answers in previous posts. I'll figure it out tomorrow I just wanted to get this out there in case there is someone with this... (6 Replies)
Discussion started by: New_Guru
6 Replies
Login or Register to Ask a Question