我跨三个系统进行操作:
- 一台远程 Unix 机器(我们称之为 Unix1),它存储一些文件
- 本地 Windows 计算机(我们称之为 win1),它存储私人的Unix1 的关键
- 存储进程的远程 Unix 机器(我们称之为 Unix2)。
Unix2 上的进程无法安装在 Unix1 上。理想情况下,我尝试执行以下操作:
- 从Unix2,连接到Unix1(使用win1上的私钥)
- 将一些文件从 Unix1 拉到 Unix2
- 在 Unix2 上运行进程
- 将输出文件从 Unix2 推送到 Unix1(在 win1 上使用私钥)
我在这里需要遵循什么语法?私钥的位置给我带来了很多问题。
答案1
将密钥从 Windows 带到 UNIX
从 Windows 上的私钥生成公钥,将两者复制到 unix2。
如果使用putty,则使用puttygen,然后转换,导出 openssh 密钥
私钥如下所示:(RSA 是密钥的类型)
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCUAEAzrtuUOEMAN1vaX1GFBLoBiDba/AiIdfFkTFJeZtaKtiuIpS7
(...)
----END RSA PRIVATE KEY-----
公钥看起来像
ssh-rsa AAAAB3....abc user@hosts
在unix1上授权user2
假设 user1/user2 在 unix1/unix2 上,来自 unix2
将公钥内容附加到authorized_keys
(在~user1/.ssh
unix1上)
将私钥放入id_rsa
unix2~user2/.ssh
上。
复制文件
scp /some/file1.txt /some/file2.cmd user1@unix1:/distant/place
运行进程
ssh -l user1 unix1 /distant/place/file2.cmd
带回结果
scp user1@unix1:/distant/place/result.txt /some