本文主要是介绍SSH ControlMaster功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ssh 的ControlMaster实现不用每次ssh都输入密码
- 1、参数说明
- 2、设置方式
- 3、Window系统不支持
1、参数说明
要启用 SSH 连接复用功能,您可以按照以下步骤操作:
编辑 SSH 客户端配置文件:
打开或创建 SSH 客户端配置文件 ~/.ssh/config(Linux 和 macOS 系统)或 %USERPROFILE%.ssh\config(Windows 系统)。
在配置文件中添加以下内容:
在配置文件中添加以下内容来启用连接复用:
Host *ControlMaster autoControlPath ~/.ssh/master-%r@%h:%pControlPersist 600
Host *:这表示对所有主机应用这些配置,您也可以针对特定主机或主机模式应用这些配置。
ControlMaster auto:启用连接复用。
ControlPath ~/.ssh/master-%r@%h:%p:定义保存主连接的路径和文件名模式。%r 表示远程用户名,%h 表示远程主机名,%p 表示远程端口号。这将在 ~/.ssh/ 目录下创建一个名为 master-username@hostname:port 的文件,用于保存主连接信息。
ControlPersist 600:定义持续时间(以秒为单位),即在连接关闭后继续保持主连接的时间。在此示例中,连接将在最后一个会话结束后持续 600 秒(10 分钟),以便在此期间可以重用该连接。
链接:https://www.jianshu.com/p/1554e9afb86e
注意ControlPath参数:
ControlPath ~/.ssh/controlmasters/%r@%h:%p (.ssh后面不能有不存在的目录)
改正:ControlPath ~/.ssh/controlmasters-%r@%h:%p
2、设置方式
#方式一:
Host *ControlPath ~/.ssh/test%r@%h:%pControlMaster autoControlPersist yes
Host kcHostName newrelay.comUser caizhao#方式二:
Host *User caizhaoControlMaster autoHost kcHostName newrelay.comControlPath ~/.ssh/master-%r@%h:%p.socketControlPersist yes ForwardX11 yesServerAliveInterval 300 #方式三:
Host cedarControlPath ~/.ssh/cm-%r@%h:%pControlMaster autoControlPersist 10mHostName newrelay.comUser caizhao
3、Window系统不支持
window系统暂不支持ControlMaster ,要使用安装WLS的Linux系统来支持
getsockname failed: Not a socket
安装
参考:https://learn.microsoft.com/zh-cn/windows/wsl/setup/environment
wsl --install
电脑终端配置wsl
使用 .wslconfig 为 WSL 上运行的所有已安装的发行版配置全局设置。
参考:https://learn.microsoft.com/zh-cn/windows/wsl/enterprise
vim ~/.wslconfig
[experimental]
autoMemoryReclaim=gradual # gradual | dropcache | disabled
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
Linux终端中配置网络
配置DNS
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf
设置代理:
#IP为window的IP地址,ipconfig查看
export ALL_PROXY="http://172.19.80.1:7890"
安装ssh
sudo apt update && sudo apt upgrade
sudo apt install openssh-client
sudo apt install openssh-server
shh配置(Ubuntu)
1、ssh服务端配置(服务)
#vim /etc/ssh/sshd_config
Port 2222
ListenAddress 0.0.0.0
PermitRootLogin yes
StrictModes yes
PasswordAuthentication yes
# 配置完需要重启服务:sudo systemctl restart sshd.service2、ssh客户端配置(客户)
#vim ~/.ssh/config
#方式一:
Host *ControlPath ~/.ssh/test%r@%h:%pControlMaster autoControlPersist yes
Host kcHostName newrelay.com(你要连接地址)User caizhao (你的用户名)
修改Wsl为root登录,并修改root密码
ubuntu config --default-user root
这篇关于SSH ControlMaster功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!