我的最终目标是从运行 ubuntu 16.04 的服务器中的 CheckPoint VPN 后面的 FTP 服务器下载文件,我只能通过 ssh 访问。
我遵循了这个答案中描述的步骤,具体来说:
snx
版本 800007075wget https://starkers.keybase.pub/snx_install_linux30.sh?dl=1 -O snx_install.sh
Run Code Online (Sandbox Code Playgroud)
sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
Run Code Online (Sandbox Code Playgroud)
chmod a+rx snx_install.sh
sudo ./snx_install.sh
Run Code Online (Sandbox Code Playgroud)
~/.snxrc
文件:server <server_ip>
username <vpn_user>
reauth yes
Run Code Online (Sandbox Code Playgroud)
在那之后(以及在第 4 步之前),每当我尝试时,snx -s <server_ip> -u <vpn_user>
我都会得到:
Check Point's Linux SNX
build 800007075
Please enter your password:
SNX: Connection aborted.
Run Code Online (Sandbox Code Playgroud)
sudo ldd /usr/bin/snx
这里的输出是:
linux-gate.so.1 => (0xf7795000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf7639000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 …
Run Code Online (Sandbox Code Playgroud) 我试图在 while 循环中调用一个函数并传递一些参数。但是,getopts
只能获取第一次调用的参数。
这是一个最小的例子:
function add_all_external_services() {
env | sed -n "s/^EXTERNAL_SERVICE_OPTIONS_\(.*\)$/\1/p" > options
while read -r line
do
key="${line%%=*}"
opt="${line#*=}"
if [[ -n "$key" && -n "$opt" ]]; then
echo "Adding external service \"$key\" with options: \"$opt\""
add_external_service $opt
else
echo "Missing one or more variables:
- Key: \"$key\"
- Options: \"$opt\"
"
fi
done < options
rm options
}
function add_external_service() {
local local_service_name=""
local external_service_name=""
local external_service_namespace=""
local service_url=""
echo " Options: $@"
while getopts …
Run Code Online (Sandbox Code Playgroud)