sin*_*boy 39 ssh forwarding environment-variables
我使用几个不同的服务器,能够设置一些环境变量,以便在我进入SSH时它们在所有环境变量上都是活动的.这个问题是,一些变量的内容包含敏感信息(散列)密码),所以我不想让它躺在.bashrc文件中 - 我只想把它保存在内存中.
我知道你可以使用SSH来转发DISPLAY变量(通过ForwardX11)或SSH代理进程(通过ForwardAgent),所以我想知道是否有办法在SSH连接中自动转发任意环境变量的内容.理想情况下,我可以在.ssh/config文件中设置一些内容,以便在需要时自动运行.有任何想法吗?
sal*_*lva 34
您可以,但它需要更改服务器配置.
阅读条目AcceptEnv中的sshd_config(5)和SendEnv在ssh_config中(5) .
更新:
您也可以在命令行上传递它们:
ssh foo@host "FOO=foo BAR=bar doz"
Run Code Online (Sandbox Code Playgroud)
关于安全性,请注意,任何有权访问远程计算机的人都能看到传递给任何正在运行的进程的环境变量.
如果你想保密信息,最好通过它stdin:
cat secret_info | ssh foo@host remote_program
Run Code Online (Sandbox Code Playgroud)
Aar*_*lla 14
您无法自动执行此操作(除非$DISPLAY您可以将其-X与Xauth信息一起转发,以便远程程序可以实际连接到您的显示器),但您可以使用带有"此处文档"的脚本:
ssh ... <<EOF
export FOO="$FOO" BAR="$BAR" PATH="\$HOME/bin:\$PATH"
runRemoteCommand
EOF
Run Code Online (Sandbox Code Playgroud)
未转义的变量将在本地扩展,结果将传输到远程端.所以PATH将使用远程值设置$HOME.
| 归档时间: |
|
| 查看次数: |
34312 次 |
| 最近记录: |