2009-01-06 134 views
5

我需要创建一个脚本来自动设置一个ssh隧道。我认为没有密码的专用ssh密钥是一个好的开始,但我无法找到这是否可行,以及如何做到这一点。 此密钥应该具有有限的权限(只设置隧道),但我需要另一个私钥(使用密码)。创建一个用于设置ssh隧道的无密码二级ssh密钥

谢谢!

回答

8

好的,我找到了答案。

首先,ssh-keygen -f theNewPrivateKey否则它会覆盖旧的私钥。 二,ssh -i theNewPrivateKey [email protected]-i选项更改用于认证的私钥。

现在我可以尝试我的脚本。


编辑:请问我的新的密钥具有有限的权限:

当复制公钥到目标计算机的$ HOME /的.ssh/authorized_keys2中的文件,我添加了这个:

command="sleep 99999999999" ssh-dss AAAAB3NzaC1kc3MA... 
(+ the rest of the key) 

然后唯一允许的命令是永远等待。 由于创建此密钥的目的是创建一个反向ssh隧道,所以应该没问题。 然后创建隧道:

ssh -T -R 7878:localhost:22 -i .ssh/mynewkey [email protected] 

最后,我可以记录从我家的电脑:

ssh [email protected] -p7878 

我希望这不会有安全问题。如果这是一件坏事,请让我知道!

+1

新密钥将如何“有限权限”? – innaM 2009-01-13 12:21:25

1

尝试

ssh-keygen

命令。

+1

不要忘记-f选项,否则这将覆盖旧的私钥 – ascobol 2009-01-06 15:11:13

0

我有类似的情况,我必须自动同步服务器内容,而不必在我的robocopy脚本中提供密码。

Link帮了我。