如何设置服务器到服务器SFTP以使用公钥验证而不是用户帐户和密码?
答案 0 :(得分:9)
在客户端中,您需要生成其公钥并将其添加到服务器的授权密钥列表中。
以下是您可以使用的命令。
在客户端计算机上
ssh-keygen -t dsa -f id_dsa
mv id_dsa* ~/.ssh/
scp ~/.ssh/id_dsa.pub USER_NAME@SERVER:~/.ssh/HOST_NAME.key
在服务器上
cat ~/.ssh/HOST_NAME.key >> ~/.ssh/authorized_keys2
答案 1 :(得分:0)
记得
chmod 700 .ssh
以及
chmod 600 authorized_keys
答案 2 :(得分:0)
这是Windows用户的解决方案
我在Windows上遇到过类似问题所以我使用了来自http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
的Putty如果您需要生成公钥,请使用: http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
然后,当您想要自动批量从FTP服务器下载Pageant以便将私钥加载到会话中时 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工作一样简单....