我想一次打开许多隧道,它们都有相同的长密码。
与-f
,即
ssh -fN -p 22 usr1@gate1 -L 10001:ip1:22
ssh -fN -p 22 usr2@gate2 -L 10002:ip2:22
...
ssh -fN -p 22 usrn@gaten -L 1000n:ipn:22
我可以在后台打开隧道,这样我就可以同时运行它们,然后只需连续输入密码,次数与我打开的隧道数量相同 ( n
)。
鉴于我输入的内容是相同的,我想找到一种方法,只需输入一次,但仍然以安全的方式进行。
答案1
我找到了解决方案https://stackoverflow.com/a/3980904/1424395和https://unix.stackexchange.com/a/59632/269821
我用来read -s
将密码放入变量中,然后将sshpass
密码传递给ssh
.
#!/usr/bin/env bash
# Read Password
echo -n Password:
read -s password
echo
sshpass -p $password ssh -fN -p 22 usr1@gate1 -L 10001:ip1:22
sshpass -p $password ssh -fN -p 22 usr2@gate2 -L 10002:ip2:22
...
sshpass -p $password ssh -fN -p 22 usrn@gaten -L 1000n:ipn:22