设置SFTP以使用公钥验证

时间:2010-02-09 18:38:39

标签: linux unix authentication sftp public-key

如何设置服务器到服务器SFTP以使用公钥验证而不是用户帐户和密码?

3 个答案:

答案 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工作一样简单....