Pan*_*ong 9 windows linux ssh openssh sftp
我有一台 Linux 机器,我需要 sftp 到 Windows SFTP 服务器。所以第一步,我在我的 Linux 机器上创建了我自己的id_rsa文件id_rsa.pub。
然后我将文本复制id_rsa.pub到id_rsa.pubSFTP 服务器中。
并且sftp连接工作正常。
但是,我想问一下将公钥从客户端复制到服务器的命令。我在谷歌搜索,我得到一个命令,它是:
ssh-copy-id -i id_rsa.pub ftp_user*@10.7.8.32
Run Code Online (Sandbox Code Playgroud)
但是我遇到了以下错误:
'exec' 不是内部或外部命令,也不是可运行的程序或批处理文件。该系统找不到指定的路径。
我相信这个权利有一些命令出口吗?而不是我手动将公钥复制到 SFTP 服务器。
SFTP 版本是 SFTP 协议版本 3。
ssh-copy-id脚本只能对* nix中的服务器(或* nix中仿真服务器),因为它内部的服务器(比如上执行一些* nix的shell命令exec,sh,umask,rm,mkdir,tail,cat,等)。
您可以手动设置密钥。我知道您知道这一点,但由于存在细微差别,因此在 Windows 服务器上执行此操作时,为了其他读者的利益,我无论如何都会提及它。
主要步骤是:
.ssh在您的 Windows 帐户配置文件文件夹中创建该文件夹(通常在 中C:\Users\username\.ssh)。authorized_keys在文件夹中创建文件并将您的公钥添加到其中。.ssh文件夹的 ACL和ACLauthorized_keys已设置,以便只有相应的 Windows 帐户对文件夹具有写入权限,并且文件和运行服务器的帐户具有读取权限。另请注意,管理员文件的位置在默认sshd_config文件中被覆盖为%ALLUSERSPROFILE%\ssh\administrators_authorized_keys.有关详细信息,请参阅我的在 Win32-OpenSSH 上设置 SSH 公钥身份验证的指南。
如果您想从本地计算机执行此操作,可以使用sftp. 特别是如果您还没有注册服务器上的密钥,您可以将id_rsa.pub文件上传为authorized_keys文件:
$ sftp martin@example.com
martin@example.com's password:
Connected to martin@example.com.
sftp> mkdir .ssh
sftp> cd .ssh
sftp> put id_rsa.pub authorized_keys
Uploading id_rsa.pub to /C:/Users/martin/.ssh/authorized_keys
id_rsa.pub 100% 401 197.5KB/s 00:00
sftp> bye
Run Code Online (Sandbox Code Playgroud)
上面基本上就是ssh-copy-id,内部做了什么——除了ssh-copy-id追加之外authorized_keys,什么都是普通sftp不能做的。如果需要追加,可以下载authorized_keys到本地,追加到本地,重新上传回来。
或者,您可以使用(我的) WinSCP 客户端从另一台 Windows 机器设置密钥,使用它的Install Public Key into Server功能。
另请参阅我对从 Windows 设置对 Linux 服务器的公钥身份验证(ppk 私钥)的回答。
| 归档时间: |
|
| 查看次数: |
12959 次 |
| 最近记录: |