12

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

4

3 回答 3

10

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

以下是您可以使用的命令。

在客户端机器上

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
于 2010-02-09T18:56:06.020 回答
2

记得

chmod 700 .ssh

并且

chmod 600 authorized_keys
于 2014-07-15T18:54:36.380 回答
1

这是Windows用户的解决方案

我在 Windows 上遇到了类似的问题,所以我使用了来自http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html的 Putty

如果您需要生成公钥,请使用: 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 作业一样简单......

于 2015-05-12T10:43:39.223 回答