创建一个无需密码的辅助SSH密钥,用于设置SSH隧道。

5

我需要创建一个自动设置ssh隧道的脚本。我认为使用一个没有密码的专用ssh密钥是一个好的开始,但我找不到如何实现以及是否可能的信息。

这个密钥应该具有有限的权限(只能设置隧道),但我需要另一个私钥(带有密码)供自己使用。

谢谢!

3个回答

8

好的,我找到了答案。

首先,执行ssh-keygen -f theNewPrivateKey 命令以生成新的私钥文件,否则它会覆盖旧的私钥文件。其次,通过ssh -i theNewPrivateKey me@mycomputer 命令并使用-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  me@myhomecomputer

终于我可以从家里的电脑登录了:

ssh myworklogin@localhost -p7878

我希望这不会有安全问题。如果这是一个不好的事情,请告诉我!

1
这个新的键如何“拥有有限的权限”? - innaM
1
因为它只能做一件事情,即“睡眠”。 - Keltia

1
尝试使用

ssh-keygen

命令。

1
不要忘记使用-f选项,否则会覆盖旧的私钥。 - ascobol

0

我曾经遇到过类似的情况,需要在不提供密码的情况下自动同步服务器内容,使用 robocopy 脚本。

这个链接对我很有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接