I would like to use SFTP from command line without entering userid and password.
Here is what I have gathered and did.
1) Create a public and private key pair for the protocol you want to use.
To create a key pair for use by SSH2, enter:
ssh-keygen -t dsa
I did that and got following message
Enter file in which to save the key (/home/user1/.ssh/id_dsa): /home/user1/.ssh/id_dsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user1/.ssh/id_dsa.
Your public key has been saved in /home/user1/.ssh/id_dsa.pub.
The key fingerprint is:
71:f5:3d:8f:ae:2a:73:9c:79:92:b0:35:ca:9a:2f:ed
I did not enter a passphrase
2) Next step I did was copied this file to a remote machine to which I want to connect like this
It seems that you forgot a "-b" option before "~/SFTP_test_file". That's why sftp is interpreting that as a servername instead of a commands file.
Regards.
In a nutshell;
ssh-keygen creates 2 keys, one private, one public (.pub)
The public key goes to the server you want to log on to without using a passwd.
The private key is the key that stays in the server you connect from and needs to be matched by the pub key.
Is there a reason why you want to use 2 commands (sftp, put) instead of one (scp)?