设置SFTP以使用公钥authentication

如何设置服务器到服务器的SFTP使用公钥authentication,而不是用户帐户和密码?

Solutions Collecting From Web of "设置SFTP以使用公钥authentication"

在客户端上,您需要生成其公钥并将其添加到服务器的授权密钥列表中。

ssh-keygen -t dsa -f id_dsa //on client machine mv id_dsa* ~/.ssh/ //on client machine scp ~/.ssh/id_dsa.pub USER_NAME@SERVER:~/.ssh/HOST_NAME.key // on client machine cat ~/.ssh/HOST_NAME.key >> ~/.ssh/authorized_keys2 // on server 

记得

 chmod 700 .ssh 

并且

 chmod 600 authorized_keys 

这是Windows用户的解决方案

我在Windows上有类似的问题,所以我使用腻子从http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

如果你需要生成一个公钥然后使用: http : //the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe

然后,当你想自动从FTP服务器下载批处理文件,以便将私钥加载到会话http://the.earth.li/~sgtatham/putty/latest/x86/pageant.exe

然后使用PSFTP连接并执行操作http://the.earth.li/~sgtatham/putty/latest/x86/psftp.exe

所以这里是批处理的示例代码:

 !--Loading the key to session--! @C:\pageant.exe "C:\privatekey.ppk" !--Calling the PSFTP.exe with the uaser and sftp address + command list file--! @C:\psftp user@your.server.address -b C:\sftp_cmd.txt 

命令列表文件(sftp_cmd.txt)会像这样:

 mget "*.*" !--downloading every thing !--more commands can follow here close 

现在,你需要安排在计划任务*我希望它很简单,因为Unix的cron工作….