我需要创建一个自动设置ssh隧道的脚本。我认为使用一个没有密码的专用ssh密钥是一个好的开始,但我找不到如何实现以及是否可能的信息。
这个密钥应该具有有限的权限(只能设置隧道),但我需要另一个私钥(带有密码)供自己使用。
谢谢!
我需要创建一个自动设置ssh隧道的脚本。我认为使用一个没有密码的专用ssh密钥是一个好的开始,但我找不到如何实现以及是否可能的信息。
这个密钥应该具有有限的权限(只能设置隧道),但我需要另一个私钥(带有密码)供自己使用。
谢谢!
好的,我找到了答案。
首先,执行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
ssh-keygen