Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何永久存储服务器密钥?openconnect_Bash_Terminal_Vpn - Fatal编程技术网

Bash 如何永久存储服务器密钥?openconnect

Bash 如何永久存储服务器密钥?openconnect,bash,terminal,vpn,Bash,Terminal,Vpn,有没有办法在成功连接后存储服务器密钥, 像宋承宪那样 无论我连接了多少次,我都必须始终键入“yes”以 接受服务器密钥。我希望它能被永远接受和保存 ############################### amir@amirpc:~$ sudo openconnect uk.cisadd.com -u myusername POST https://uk.cisadd.com/ Attempting to connect to server xxx.xxx.xxx.xxx:443 SSL

有没有办法在成功连接后存储服务器密钥, 像宋承宪那样

无论我连接了多少次,我都必须始终键入“yes”以 接受服务器密钥。我希望它能被永远接受和保存

###############################
amir@amirpc:~$ sudo openconnect uk.cisadd.com -u myusername
POST https://uk.cisadd.com/
Attempting to connect to server xxx.xxx.xxx.xxx:443
SSL negotiation with uk.cisadd.com
Server certificate verify failed: signer not found

Certificate from VPN server "uk.cisadd.com" failed verification.
Reason: signer not found
Enter 'yes' to accept, 'no' to abort; anything else to view: 

Connected to HTTPS on XXX.XXX.XXX.XXX
###############################

可以编写bash脚本来运行openconnect和escape是吗

我打赌,您可以使用选项
--无证书检查
或拥有有效的SSL证书:

sudo openconnect --no-cert-check uk.cisadd.com -u myusername

如果您不介意对流量进行解密,可以使用
--无证书检查
。否则,请使用
--servercert=FINGERPRINT
,其中FINGERPRINT是证书信息中显示的“服务器密钥哈希”。

我在OpenWRT上遇到了相同的问题,我的解决方案是安装“ca证书”包

# opkg install ca-certificates
一旦我这样做了,openconnect就停止标记“未找到签名者”


此解决方案的好处是,您正在使用预期的证书,并限制了破坏网络的机会。

最好的方法是第一次登录服务器时,将--servercert保存在剪贴板中,如下所示

echo "password" | sudo openconnect  -u username  uk2.cisadd.com --servercert sha25:xxxxxxx
openconnect 7.0.6版及以后的版本中不再有
--无证书检查
选项。
通过这种方式,我以shell脚本的形式执行了以下过程以绕过此问题:

首先,您需要服务器认证,您可以找到它,如下所示:

echo | sudo openconnect--user=--stdin上的passwd--无DTL
然后必须从预期输出中找到
--servercert
值,如下所示:

。。。
与xxxxxxx的SSL协商
服务器证书验证失败:找不到签名者
来自VPN服务器“xxxxxxx”的证书验证失败。
原因:找不到签名者
要在将来信任此服务器,请将以下内容添加到命令行:

--服务器证书pin-sha256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX——没有证书检查吗?但是您的服务器证书验证失败的事实令人担忧,使用openconnect v7.08,他们似乎已经删除了--no cert check选项:
该--no cert check选项不安全,已被删除。
因此您现在需要一个有效的证书
--no cert check
选项不再受支持。