我有一台 Linux 机器,我需要 sftp 到 Windows SFTP 服务器。所以第一步,我在我的 Linux 机器上创建了我自己的id_rsa
文件。id_rsa.pub
然后我将其中的文本复制id_rsa.pub
到id_rsa.pub
SFTP 服务器中。
并且sftp
连接工作正常。
但是,我想问一下将公钥从客户端复制到服务器的命令。我在谷歌搜索,我得到一个命令是:
ssh-copy-id -i id_rsa.pub ftp_user*@10.7.8.32
但是我遇到了以下错误:
'exec' 不是内部或外部命令,也不是可运行的程序或批处理文件。该系统找不到指定的路径。
我相信这有一些命令出口吗?而不是我手动将公钥复制到 SFTP 服务器。
SFTP 版本是 SFTP 协议版本 3。
ssh-copy-id
脚本仅适用于 *nix 服务器(或具有 *nix 仿真的服务器),因为它在服务器上内部执行一些 *nix shell 命令(如exec
,sh
,umask
,rm
,mkdir
,tail
,cat
等)。您可以手动设置密钥。我知道您知道这一点,但由于存在细微差别,在 Windows 服务器上执行此操作时,为了其他读者的利益,我还是会提及它。
主要步骤是:
.ssh
文件夹(通常在 中C:\Users\username\.ssh
)。authorized_keys
文件并将您的公钥添加到其中。.ssh
文件夹的 ACL 和authorized_keys
已设置,以便只有相应的 Windows 帐户对文件夹和文件具有写入权限,而运行服务器的帐户具有读取权限。另请注意,管理员文件的位置在默认sshd_config
文件中被覆盖为%ALLUSERSPROFILE%\ssh\administrators_authorized_keys
.有关详细信息,请参阅我的Setting up SSH public key authentication on Win32-OpenSSH 指南。
如果您想从本地计算机执行此操作,则可以使用
sftp
. 特别是如果您还没有在服务器上注册密钥,您可以将id_rsa.pub
文件作为authorized_keys
文件上传:以上基本上是
ssh-copy-id
在内部做什么——除了ssh-copy-id
附加authorized_keys
,普通sftp
不能做什么。如果需要追加,可以下载authorized_keys
到本地机器,在本地追加,重新上传回来。或者,您可以使用(我的) WinSCP 客户端从另一台 Windows 机器设置密钥,其Install Public Key into Server功能。
另请参阅我对Setting Up public key authentication to Linux server from Windows (ppk private key)的回答。
您可以按照 Microsoft 文档进行操作 - https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement#deploying-the-public-key
摘要(针对管理员)
ssh-key-gen
。id_rsa.pub
文件复制到 windows 服务器的位置C:\ProgramData\ssh\administrators_authorized_keys
。在 Windows 10 中使用 git-bash:下面的 cmd